0

こんにちは、サーバー側から次の JSON が返されました。

{"command":"SELECT","rowCount":1,"oid":null,"rows":[{"username":"xxxx"}],"fields":[{"name":"username","tableID":34722,"columnID":3,"dataTypeID":1043,"dataTypeSize":-1,"dataTypeModifier":204,"format":"text"}],"_parsers":[null]}

私はこのようにJavaScriptでそのjsonを解析しています:

 var ParsedJSONResponse = $.parseJSON(JSONResponseFromServerSide);

変数は"ParsedJSONResponse" 常に null です。JSON は有効です。JSONLint でチェックしたので、何が起こっているのでしょうか?

4

2 に答える 2

3

文字列を解析する必要があります

var stringJson = '{"command":"SELECT","rowCount":1,"oid":null,"rows":[{"username":"xxxx"}],"fields":[{"name":"username","tableID":34722,"columnID":3,"dataTypeID":1043,"dataTypeSize":-1,"dataTypeModifier":204,"format":"text"}],"_parsers":[null]}';  
var ParsedJSONResponse = $.parseJSON(stringJson);  

Json ( JSONResponseFromServerSide) があるだけで、それを解析する理由はありません。

Json オブジェクトを解析すると、 が返されますnull

$.parseJSON({}); // returns `null`  
于 2013-09-19T17:12:20.523 に答える
0

あなたのコードは正しいです このJSFiddleをチェックしてください。

var JSONResponseFromServerSide = '{"command":"SELECT","rowCount":1,"oid":null,"rows":[{"username":"xxxx"}],"fields":[{"name":"username","tableID":34722,"columnID":3,"dataTypeID":1043,"dataTypeSize":-1,"dataTypeModifier":204,"format":"text"}],"_parsers":[null]}'; //it's your json string
$.parseJSON(JSONResponseFromServerSide); //nothing wrong

すでに JavaScript オブジェクトである場合JSONResponseFromServerSideは、その必要はありませんparseJSON

于 2013-09-19T17:10:56.073 に答える