2017-11-08 17 views
0

私はこのような配列のセットを持っている:[["Sarah"],["Jamie"],["B"],["148"]]ネストされた配列をjsのJSON文字列に変換しますか?

を、私は、各vauesのための特定の要素を持つJSON文字列にこれを変換したいです。たとえば、

{ "name":"Sarah", "grade":"148", "School":"B"...} 

どうすればよいですか?

オリジナルJSON

"Data":{ 
     "Table":[ 
     { 
      "Name":[ 
       "Jamie" 
      ], 
      "School":[ 
       "A" 
      ], 
      "grade":[ 
       "99" 
      ] 

     }, 
     { 
      "Name":[ 
       "Mike" 
      ], 
      "School":[ 
       "B" 
      ], 
      "grade":[ 
       "148" 
      ] 
     } 
     ] 
    } 
} 
+0

で試すことができます。私はいくつかの解析をしなければならず、それぞれの名前に固有の値を持っていましたが、今は名前で返さなければなりません。意味がありますか?たとえば、{"Sarah": "1"、 "Jamie": "59"、 "Mike": "3"}}構文解析 –

+0

角部とは何ですか?何もない場合は、 – ValLeNain

+0

@Xufoxタグを削除してください - 投稿で更新されました。ありがとう。私のために働く最善の方法は、オリ・ドーリの下にはっきりしていません。私はそれがうまくいくことは知っていますが、これを行うにはよりよい方法がありますか? –

答えて

0

は、あなたがこれを行うにはreduceを使用することができます..私は、この要素と結合する配列をToStringメソッドしようとしたが、それはうまく動作しません!

let newData = data.Data.Table.reduce(function(arr, obj) { 
    let newObj = {}; 
    for (let key in obj) { 
     newObj[key] = obj[key][0] 
    } 

    arr.push(newObj); 
    return arr; 
}, []) 

デモ:次のようにtymeJVのコードスニペットからhttps://jsfiddle.net/500eo2gp/

+0

お寄せいただきありがとうございますが、すべての配列をJSON文字列に取り込む必要はありません。私は値が各名前のJSON文字列になるようにしたい。今のところ私は[["Sarah"]、["Jamie"]、["B"] [148 "]を返しただけなので、このarrysのJSON文字列とその要素名が必要です。 「名前」「サラ」「名前」「ジェイミー」「学校」「B」「グレード」「148」」と同じように残りを無視する –

0
let newDataArray = this.data.Data.Table.reduce(function(arr, obj) { 
    let newObj = {}; 
    for (let key in obj) { 
    newObj[key] = obj[key][0] 
    } 

    arr.push(newObj); 
    return arr; 
    }, [] 
); 
newData =JSON.stringify(newDataArray); 

JSON.stringify(newDataArray)配列はあなたのJSON文字列を与えます。

[{"Name":"Jamie","School":"A","grade":"99"},{"Name":"Mike","School":"B","grade":"148"}]

デモ: http://plnkr.co/edit/wPhVTOFhRgERLXKCuoYl?p=preview

0

あなたは私が最初のWebサービスからJSONオブジェクトを取得したシンプルなforEach

var data = {"Data": {"Table": [{"Name": ["Jamie"],"School": ["A"],"grade": ["99"]},{"Name": ["Mike"],"School": ["B"],"grade": ["148"]}]}}; 
 

 
var items = []; 
 
data['Data']['Table'].forEach(function(item){ 
 
    items.push({name: item.Name[0], grade: item.grade[0], school: item.School[0]}); 
 
}); 
 

 
console.log(JSON.stringify(items));

関連する問題