0

JavaScript 内で JSON を使用しており、ドット表記表現の文字列値を取得しようとしています。

たとえばAAA.BBB[0].CCC.DDD[5].EEE、JSON ドット表記形式の = 123 です。

しかし、値を文字列として取得したいAAA.BBB[0].CCC.DDD[5].EEEので、後で使用するために保存して、JSON コードを直接変更できるようにします。

文字列値表現を返すことができるJavascriptまたはjQueryのメソッドはありますか?

*EDIT JSON データをリスト構造に変換しています。フォーマットを ID として保存したいAAA.BBB[0].CCC.DDD[5].EEEので、ユーザーがそのリスト項目の内容を変更すると、JSON データが直接変更されます。IDに場所を保存するより良い方法はありますか?

4

3 に答える 3

3

その内部部分への参照を保存しないのはなぜですか? 文字列として保存してもあまり意味がありません。より短いアクセス方法が必要な場合は、参照を保存する方が理にかなっています。

var theCollection = AAA.BBB[0].CCC.DDD[5];
alert( theCollection.EEE );

この参照は要素に保存され、後で取得できます。

$(someelement).data("jsonref",theCollection);
var data = $(someelement).data("jsonref");
alert(data.EEE);
data.EEE = "foobar";
data = $(someelement).data("jsonref");
alert( data.EEE );
于 2013-03-29T17:23:35.033 に答える
1
var j_string = JSON.stringify(AAA.BBB[0].CCC.DDD[5].EEE);

値を文字列として返すだけの場合は、次のようにします。

var j_string_value = AAA.BBB[0].CCC.DDD[5].EEE.toString();
于 2013-03-29T17:24:47.653 に答える
0

evalそのパスで操作を実行しようとしている場合は、おそらく文字列で使用できますがeval、任意のコードが実行される可能性があるため、かなり危険です。構造全体を JSON 文字列化する場合は、ほとんどの新しいブラウザーの標準機能であるJSON.stringifyがあり、Doug Crockford は古いブラウザー向けに独自の解釈をしています

于 2013-03-29T17:23:42.950 に答える