json文字列と解析されたjson文字列の違いは何ですか?たとえば、javascriptで、json形式の文字列が[{}、{}]と言っているとします。
この文字列を解析しても同じことが生成されます。
では、なぜ解析する必要があるのでしょうか。
それはただのシリアル化/逆シリアル化です。
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を受信するときに、文字列からオブジェクトに逆シリアル化(解析)する必要があります。
素晴らしい質問です。違いは転送形式です。
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" }
お役に立てば幸いです。ではごきげんよう!ナッシュ
解析されたjson文字列は、実際のjavascriptオブジェクトとデータ配列(またはjson文字列に含まれる言語)への文字列データである必要があると思います
JSONオブジェクトには、JSONを解析して値をJSONに変換するためのメソッドが含まれています。
呼び出すことも構築することもできず、2つのメソッドプロパティを除いて、独自の興味深い機能はありません。
JSONParser parser = new JSONParser();
Object object = parser.parse(Message.toString());
JSONObject arObj = (JSONObject) object;