2016-04-13 13 views
-3

以下のようにJSONデータを含む文字列変数があります。

var jsonstring = [{"latitude":"51.5263","longitude":"-0.120285","altitude":"","device":"123","rating":"5","region":"Europe","customer":"","time":"1-2 Weeks","error":"Error 1","application":"Phone","age":"< 1 Year"}, {"latitude":"27.58","longitude":"23.43","altitude":"","device":"Asc 140","rating":"4","region":"Africa","customer":"","time":"< 1 Week","error":"Error 1","application":"PCB","age":"1-3 Years"}, {"latitude":"39.55","longitude":"116.25","altitude":"","device":"CVB","rating":"4","region":"China","customer":"","time":"1-2 Weeks","error":"Error 2","application":"Sorting","age":"3-5 Years"}]

私はこの文字列を取得し、私が個別に各オブジェクトにアクセスすることができるようにオブジェクトの配列($ scope.variableだろう)に変換します。 JSON.parse()を使用しようとしましたが、文字列全体が複数のオブジェクトではなく1つのオブジェクトになりました。

こんにちは。

+0

これは、アレイ・オブ・objects'..Iはあなただけ_one_オブジェクトを取得します疑う 'です – Rayon

+0

'JSON.parse()'はオブジェクトの配列を与えるはずです。 –

+0

var arr = jQuery.parseJSON( "$ {jsonData.encodeAsJavaScript()}"); –

答えて

0

文字列全体をJSON.parseで解析する必要があります。

他の配列のように、配列内の各オブジェクトに到達することができます。 myArray[index]myArray.map()/myArray.forEach()など

0
var jsonstring = '[{"latitude":"51.5263","longitude":"-0.120285","altitude":"","device":"123","rating":"5","region":"Europe","customer":"","time":"1-2 Weeks","error":"Error 1","application":"Phone","age":"< 1 Year"}, {"latitude":"27.58","longitude":"23.43","altitude":"","device":"Asc 140","rating":"4","region":"Africa","customer":"","time":"< 1 Week","error":"Error 1","application":"PCB","age":"1-3 Years"}, {"latitude":"39.55","longitude":"116.25","altitude":"","device":"CVB","rating":"4","region":"China","customer":"","time":"1-2 Weeks","error":"Error 2","application":"Sorting","age":"3-5 Years"}]'; 
$scope.variable = JSON.parse(jsonstring); 
+0

これを使用しようとしましたが、このエラーがスローされます 予期しないトークンu これは実行しようとしたコードです。 '$ scope.variable = []; $ scope.variable = $ .parseJSON(jsonstring); ' – shoghi07

+0

あなたの権利:あなたが持っているデータはJSON **の文字列**ですので、あなたがすでに行ったように、あなたは' jsonstring'という名前を付けます。しかし、JSON.parse()は文字列を期待しているので、オブジェクトの配列を一重引用符で囲む必要があります。 – MarcoS

+0

これは私がやろうとしたものです。 [jsfiddle](https://jsfiddle.net/on1pqbyp/3/) コンソールにチェックインすると、オブジェクトは '$ scope.variable'に格納されません。 SyntaxError:予期しないトークン ' – shoghi07

0

[{ "緯度": "51.5263"、 "経度": " - 0.120285"、 "高度": ""、 "デバイス": "123"、 "評価" : "5"、 "地域"、 "ヨーロッパ"、 "顧客": ""、 "時間": "1-2週間"、 "エラー": "エラー1"、 "アプリケーション": "電話"、 "年齢":" < 1年 "}、 {"緯度 ":" 27.58 "、"経度 ":" 23.43 "、"高度 ":" "、"デバイス ":" Asc 140 "、"評価 ":" 4 " 1週間 "、"エラー ":"エラー1 "、"アプリケーション ":" PCB "、"年齢 ":" 1- "、"地域 ":"アフリカ "、"顧客 " "経度": "経度": "116.25"、 "高度": ""、 "デバイス": "CVB"、 "レーティング": "4"、 "地域":"エラー": "エラー2"、 "アプリケーション": "ソート"、 "年齢": "日"、 " 3-5 Years "}]

これは配列オブジェクトです。これは文字列オブジェクトではありません。

あなたはこのように再度お試しすることができます

するvar jsonString = "[]"; var json = JSON.parse(jsonString);

+0

これは私が試したものです。 'のvar jsonstring = [...] // JSON文字列 するvar JSON = JSON.parse(jsonstring);' なお、このエラーをスロー:にSyntaxError:予期しないトークンU – shoghi07

+0

変数jsonstringは配列でobject.soあなたはそれを解析する必要はありません。 – BT4Color

0

JSON.parse()メソッドは、の文字列をJSONとして解析します。 問題のコードは、文字列ではなくJSオブジェクトを解析しようとしていることを示しています。

次の例では、JSオブジェクトを解析しようとするとエラーが発生します。

var jsonstring = [{},{}]; 
JSON.parse(jsonstring); // ERROR Uncaught SyntaxError: Unexpected token o 

次は(jsonstringが文字列ではなく、ここで対象となりますのでご注意ください)の代わりに動作します:

var jsonstring = '[{},{}]'; 
JSON.parse(jsonstring); // OK 
+0

私はあなたが上記の答えを得て、これをやろうとしました。 'var temp =" '"+ jsonstring +"' "; console.log( "New JSON:"、JSON.parse(temp)); ' それでも動作しません。 'console.log( 'temp');' 'は** '未定義'になります** – shoghi07

+0

@ shoghi07 jsfiddleで行っていることの完全な例を投稿してください。 ! – GibboK

+0

これはフィドルのリンクです:[jsFiddle](https://jsfiddle.net/on1pqbyp/1/) このエラーを表示します: 'SyntaxError:予期しないトークン '' – shoghi07

関連する問題