jQuery または JavaScript でオブジェクトに変換したい文字列として保存されている名前と値のペアがあります。これがそのペアの例です。
{'auto':false, 'itemAWidth':20, 'itemBWidth':20, 'marginLeft':0, 'marginRight':0, 'maximumWidth':0, 'propW':5, 'propX':5, ' propY':null, 'propZ':null}
これは文字列として保存されています。これを適切なオブジェクトに変換するにはどうすればよいですか? 私の失敗した試みのいくつかを以下に示します。
convertValuePairsToObject = function (pairs) {
var outObject = {};
var nodes = pairs.split(',');
for (var node in nodes) {
}
//alert(pairs);
//return jQuery.parseJSON('"' + pairs + '"');
// var outObject = {};
// //var nodes = pairs.split(','), dest = outObject;
// var = pairs.split(',');
// return outObject;
}
jQuery.parseJSON() 関数を使用しようとすると、コードは次のように始まる非常に長い文字列を返しました。
{'0':'{', '1':''', '2':'0', '3':''', '4':':', '5':''', ' 6':'{', '7':''', '8':',', '9':' ', '10':''', '11':'1', '12': ''', '13':':', '14':''', '15':''', '16':''', '17':',', '18':''' , '19':''', '20':'2', '21':''', '22':':', '23':''', '24':'a', ' 25':''', '26':',', '27':'', '28':''', '29':'3', '30':''','31':':', '32':''', '33':'u', '34':''', '35':',', '36':' ', '37' :''', '38':'4', '39':''', '40':':', '41':''', '42':'t', '43':' '', '44':',', '45':' ', '46':''', '47':'5', '48':''', '49':':', '50':''', '51':'o',41':''', '42':'t', '43':''', '44':',', '45':'', '46':''', '47': '5', '48':''', '49':':', '50':''', '51':'o',41':''', '42':'t', '43':''', '44':',', '45':'', '46':''', '47': '5', '48':''', '49':':', '50':''', '51':'o',
=====================================
以下を編集 10:51 AM 1/4/2013
=====================================
だから私はあなたが提供した提案を試してみました。
convertObjectToString = function (obj) {
return JSON.stringify(obj);
// var str = '';
// for (var p in obj) {
// if (obj.hasOwnProperty(p)) { str += "'" + p + "':" + formatValue(obj[p]) + ", "; }
// }
// if (str.length > 0) {
// str = String(str).substring(0, str.length - 2); // Trim trailing comma
// str = '{' + str + '}';
// }
// return str;
}
convertValuePairsToObject = function (pairs) {
return jQuery.parseJSON('[' + pairs + ']');
}
しかし、convertValuePairsToObject が実行されると、コードは名前と値のペアを前に追加します。
{"0":
そして、その関数を繰り返しトリガーすると、次のように、上記が文字列の前に保留され続けます。
{"0":{"0":{"0":
ゼロのインデックス識別子は必要ありません。どうすればそれをなくすことができますか?