2016-10-06 14 views
1

私は今JSON配列内の値を読み取る方法

var obj={ 
"address":{ 
     "addlin1":"", 
     "addlin2":"" 
     }, 
"name":"sam", 
"score":[{"maths":"ten", 
      "science":"two", 
      "pass":false 
      }] 
} 

のようなJSONはIAMのは、JSONのIAMは、配列変数を試す変更しようと

var data=JSON.parse(obj); 
var json={}; 
json['name']=data['name']; 
json['address']={}; 
json['address']['addressline1']=data['address']['addlin1']; 
json['address']['addressline2']=data['address']['addlin2']; 
json['marks']={}; 
json['maths']=data['score']['maths']; 
のようなものにJSON上を通過する際に持っています

私は期待していたようにjsonを形成することができました。しかしマークできませんでした。obj jsonスコア値は[]にあります

したがって、私はjsonをコンソール化すると、方法

"name":"sam", 
"address":{ 
    "addresslin1":"", 
    "addresslin2":"" 
    }, 
    "score":{} 
    } 

したがって、[]配列内の値も読み取ることができます。

あなたがデータ[「スコアが」]あなたが前に数学のキーを読み込むにチェックすることができる任意の要素を持っていることを確認していないなら、誰かが私に おかげ

+0

youreの - スコアが非常にスコア配列内の最初のオブジェクトにアクセスしてから、 '[0] .mathsスコアであったように継続コードの最初のビットに係るアレイであります'。 'data.address.addlin1'の行に沿って好きな方は、javascriptオブジェクトでドット表記を使用することもできます。 – Craicerjack

+0

' obj'はJSONではありません...あなたの問題の少なくとも一部です。単に 'obj'を直接使用してください。 – Brad

答えて

3
json['maths']=data['score'][0]['maths']; 

を助けることができます:

if (data['score'].length) { 
    json['maths']=data['score'][0]['maths']; 
} 
0

data['score']を配列なので、そのように読むことはできません

json['maths']=data['score']['maths']; 

そのような広告は:

json['maths'] = data['score'][0].maths; 

また、objはJSONが、JavaScriptのオブジェクトではありません。それを直接使うことができます。

json['maths'] = obj['score'][0].maths; 

A JSONはそのような文字列である:

JSON.stringify(obj) 
var json = "{"address":{"addlin1":"","addlin2":""},"name":"sam","score":[{"maths":"ten","science":"two","pass":false}]}"; 
0

は、JSONに割り当て、次にスコアデータを格納するための別のjson2を作成します。例えば

:ほとんどが

 var json={}; 
     json2 = {} 
     json2[0] = 1; 
     json2[1] = 2; 
     json[0] = json2; 
関連する問題