6

json文字列と解析されたjson文字列の違いは何ですか?たとえば、javascriptで、json形式の文字列が[{}、{}]と言っているとします。

この文字列を解析しても同じことが生成されます。

では、なぜ解析する必要があるのでしょうか。

4

4 に答える 4

8

それはただのシリアル化/逆シリアル化です。

Javscriptコードでは、通常、オブジェクトを操作します。これにより、オブジェクトのプロパティなどを簡単に取得できますが、JSON文字列はあまり役に立ちません。

var jsonobj = { "arr": [ 5, 2 ], "str": "foo" };
console.log(jsonobj.arr[1] + jsonobj.str);
// 2foo

var jsonstr = JSON.stringify(jsonobj);
// cannot do much with this

ただし、Ajax呼び出しを介してサーバーに送信するには、最初にシリアル化(文字列化)する必要があります。同様に、サーバーからJSONを受信するときに、文字列からオブジェクトに逆シリアル化(解析)する必要があります。

于 2012-06-27T06:20:50.713 に答える
5

素晴らしい質問です。違いは転送形式です。

JSONはJavaScriptオブジェクトの「表記法」にすぎず、実際にはJavaScriptの「オブジェクトリテラル」自体ではありません。したがって、データはJSONで受信されるため、実際のJavaScript'Object-Literalになるために、解釈、評価、解析される文字列にすぎません。

2つの間に1つの物理的な違いがあり、それは引用符です。JSONは転送される文字列である必要があることは理にかなっています。方法は次のとおりです。

//A JavaScript Object-Literal

var anObj  = { member: 'value'}

//A JSON representation of that object

var aJSON = { "member":"value" }

お役に立てば幸いです。ではごきげんよう!ナッシュ

于 2012-06-27T06:27:31.063 に答える
0

解析されたjson文字列は、実際のjavascriptオブジェクトとデータ配列(またはjson文字列に含まれる言語)への文字列データである必要があると思います

于 2012-06-27T06:22:48.323 に答える
0

JSONオブジェクトには、JSONを解析して値をJSONに変換するためのメソッドが含まれています。

呼び出すことも構築することもできず、2つのメソッドプロパティを除いて、独自の興味深い機能はありません。

JSONParser parser = new JSONParser();
Object object = parser.parse(Message.toString());
JSONObject arObj = (JSONObject) object;
于 2013-08-20T06:40:07.573 に答える