2012-01-05 8 views
3

jqueryメソッドによって送信されるJSONデータを受け取るWebサービスがあります。 しかし、このデータを送信する前にオブジェクトを編集する必要があります。 JSONオブジェクトをJavaScriptで単純なオブジェクトに解析し、それを修正してJSONに再度解析する方法はありますか?またはJSONオブジェクトを解析せずにこのJSONオブジェクトを更新することができますか?オブジェクトをJSONに構文解析します

+0

JSONオブジェクトを取得するためにJSON.Parseを使用する必要がありました。これは既にvar myData = JSON.stringify({oJson:{data1:1}})を実行していれば、 – jcvegan

答えて

6

jQueryを使用しており、古いブラウザとの互換性について懸念している場合は、JSON文字列をJavaScriptオブジェクトに移動する:JSON.parse、または$.parseJSON

JavaScriptオブジェクトからJSON文字列に移動する:JSON.stringify


私はすでにこれを行うしている場合は、MYDATA = JSON.stringifyを({oJson:{DATA1:1}})VAR。私はその情報設定data1 = 2を更新したい、これを行うための最善の方法は何ですか?

さらに良い
var myData = JSON.stringify({ oJson:{data1 :1}}); 
// later... 
parsedData = JSON.parse(myData); 
parsedData.oJson.data1 = 2; 
myData = JSON.stringify(parsedData); 

あなたはそれを文字列化する前に、オブジェクトへの参照を保存した場合しかし、あなたはすべてでJSONをパースする必要はありません。

var obj = { oJson:{data1 :1}}; 
var myData = JSON.stringify(obj); 
// later... 
obj.oJson.data1 = 2; 
myData = JSON.stringify(obj); 
+0

です。私はその情報設定data1 = 2を更新したい、これを行うための最善の方法は何ですか? – jcvegan

+1

@元:なぜそれを文字化する前にデータ*を操作しないのですか?あなたが知る必要があるのは、とにかく答えにあるだけです。何がもっと必要ですか? –

+0

文字列化する前に 'data1'を' 2'に設定するのはどうですか? –

3
var parsed = JSON.parse('{"a": 1}'); 
parsed.b = 2; 
var string = JSON.stringify(parsed); 
//string is: '{"a":1,"b":2}' 
0

私は何かを考えます次のように動作する必要があります...

//Convert your JSON object into a JavaScript object 
var myObject = JSON.parse(json); 

//You can then manipulate the JavaScript object like any other 
myObject.SomeValue = "new"; 

//Then you can convert back to a JSON formatted string 
json = JSON.stringify(myObject); 
0

JSONはJavaScriptオブジェクトですy JavaScriptを使って簡単に操作することができます。

+2

いいえ、JSONはデータ交換形式で、JavaScriptでは* string *としてしか存在しません。しかし、JavaScriptは文字列メソッドも提供しています。 –

+0

また、JavaScriptのコンテキスト内のJavaScriptオブジェクトは、おそらくJSON文字列を意味します。 –

+0

オブジェクトリテラルをJSONとして参照することもできますが、正しいとは限りません。 JSONはデータ交換フォーマットの公式な名前なので、JSONについて話したら、私はあなたがこのフォーマットについて話していると仮定しなければなりません。実際、仕様書でJSONについて述べる唯一のポイントは、['parse'や' stringify'メソッドを使って 'JSON'オブジェクトを記述しているところです(http://ecma262-5.com/ELS5_HTML.htm#Section_15)。 12)。そうでなければ、オブジェクトリテラルは*オブジェクト初期化子*とも呼ばれます。 –

0

あなたはjavascriptオブジェクトを取得するには、このような何かを行うことができます:

var jsObject = JSON.parse(jsonString); 

その後、あなたはjsObjectを変更する可能性があり、JSON.stringifyでJSON文字列に戻ってそれを回します。

このpageにはさらに詳しい情報があります。

関連する問題