【解決方法】javascriptで文字列をオブジェクトに変換するには?


私は次のような文字列を持っています
params=”domain:Abcd-E-Group,domaintype:com,Submit1:Search”

今私はこれをに変換したい

obj={domain:”Abcd-E-Group”,domaintype:”com”,Submit1:”検索”}

私が試したこと:

JSON.parse(params); を試しました。 および eval(params);

どちらも私のために働いていません。

解決策 1

JSON.parse() が機能するには、文字列パラメーターが正しくなければなりません JSON 構文[^]

これを試して:

C#
var params = '[{"domain":"Abcd-E-Group","domaintype":"com","Submit1":"Search"}]';
obj = JSON.parse(params);
alert(obj[0].domain);

続きを読む: JSON の例 – 文字列からのオブジェクト[^]

解決策 2

ピーターの解決策に加えて、

文字列が指定した形式である場合は、これを試して json オブジェクトに変換する必要があります。

JavaScript
var params = "domain:Abcd-E-Group,domaintype:com,Submit1:Search";

          var jsonStrig = '[{';
          var items = params.split(',');
          for (var i = 0; i < items.length; i++) {
              var current = items[i].split(':');
              jsonStrig += '"' + current[0] + '":"' + current[1] + '",';
          }
          jsonStrig = jsonStrig.substr(0, jsonStrig.length - 1);
          jsonStrig += '}]';
          alert(jsonStrig); //[{"domain":"Abcd-E-Group","domaintype":"com","Submit1":"Search"}]
          var obj = JSON.parse(jsonStrig);
          alert(obj[0].domain);

解決策 3

私はこれで解決策を得ました。

obj={};
var params=”domain:Abcd-E-Group,domaintype:com,Submit1:Search”;

var KeyVal = params.split(“,”);

入っていた;
for (KeyVal の i) {
キーヴァル[i] = キーヴァル[i]。スプリット(”:”);
オブジェクト[KeyVal[i][0]]= キーヴァル[i][1];
}

解決策 4

let person='{firstName:"John", lastName:"Doe", id: 55, fullName:function(){return this.firstName+" "+this.lastName} }';

function strToObj(e){ var obj=new Function("return" +e); return obj() };

person=strToObj(person);

console.log(person.fullName())

コメント

タイトルとURLをコピーしました