2016-12-31 7 views
3

JsonをJavascriptに送信しています。Javascriptでjsonを読み込んでも、常に 'undefined'が返されます

 myMethod(String json) {   
     alert(json); 
     var jsonObject = JSON.parse(json); 
     alert(jsonObject); 
var myResponseResult = jsonObject.result; 
var myResponseCount = jsonObject.count; 
} 

それは

   {"Test":"123", "Test2":"234"} 

としてJSONを表示する。しかし、それは

   [object Object] 

としてjsonObjectが表示され、 '未定義'

としてjsonObject.resultを表示します。ここで、i私を導いてください。 'm wrong ..

ありがとう

+0

アラートの代わりにconsole.log()を試したことがありますか?それはあなたのオブジェクトで何が起こっているか見ることができます。通常、コンソールログは、中断しないでより多くの情報を表示するので、とにかくより良い方法です。 –

+0

コードをインデントしてください。 –

答えて

1

警告は文字列のみを表示できます。あなたはそれにオブジェクトを渡すと、それはそれで何をすべきかわからないので、それだけで表示する[オブジェクトのオブジェクト]

これを試してみてください:

alert({foo: 'bar'}) 

これは、[オブジェクトのオブジェクト]を表示する必要があります。

JSON.parseがhss 2キー、Test、およびTest2を返したオブジェクト。結果と呼ばれるキーは存在しないため、jsonObject.resultは未定義です。試してください:

alert(jsonObject.Test); 
+0

u、ありがとう – junaidp

0

結果データはオブジェクトです。そうJSONは

var obj=JSON.parse('{"Test":"123", "Test2":"234"}') 
alert(obj.Test) 

それとも、文字列として全体JSONオブジェクトを表示するJSON.stringifyを使用することができますを試し読みします。

alert(JSON.stringify({"Test":"123", "Test2":"234"}) 
0

明らかに、あなたはあなたのjsonObjectresultを持っていません。代わりに、TestTest2があります。
ので、このように、この関数を呼び出してみてください:[object Object]については

myMethod('{"result":"123", "count":"234"}')

- それは正常な動作です。オブジェクトのコンテンツを表示する場合は、alert(jsonObject);の代わりにconsole.dir(jsonObject);を使用し、コンソール(ChromeではF12)を開いてその結果を確認する必要があります。

P.S. Javascriptは弱い型の言語なので、パラメータの型を定義するべきではないので、単語Stringを削除する必要があります。

0

用途:

var _Result = JSON.parse(response); 
var _Test1 = _Result[0].Test; 
var _Test2 = _Result[0].Test 

あなたは、あなたが1つのレコードを持っている場合は、表示またはalerted.evenしたいあなたのJSONデータのどの指標を定義する必要があります。

関連する問題