Jsonについて教えて下さい
xに文字列二つ入ってて、それを配列化した場合に、idが同じもので1個目と2個目にアクセスするにはどうしたらいいのでしょうか
変数wに何個配列があるか?lengthを使っても取得できません
イメージ的には下記のようなことがしたいです
x='{"id":"1"}
{"id":"2"}';
w=JSON.parse(x);
for(i=0;i<w.length;i++){
alert(w.id[i]);// 1と2の表示がしたい
}
JSON.parse では一つのオブジェクトしかパースできません。
x='[{"id":"1"},{"id":"2"}]'; のように配列にする必要があります。
回答ありがとうございます
x='{"id":"1"}
{"id":"2"}';という文字列から、
x='[{"id":"1"},{"id":"2"}]';のような形にする関数はご存知でしょうか?
実際にパースしてみないとオブジェクトの区切りが分からないので…。
一行に一つのオブジェクトとかなら、まず一行ごとに分けてそれぞれを JSON.parse するという方法もありますが。
ご指摘いただいた、x='[{"id":"1"},{"id":"2"}]';という形で下記を実行してみましたが、
idの中身を取得できずにいます
何か間違いがありますでしょうか?
<script>
window.onload=function(){
x='[{"id":"1"},{"id":"2"}]';
w=JSON.parse(x);
alert(w.id[0]);//1が出てくるはず
alert(w.id[1]);//2が出てくるはず
}
</script>
w.id[0] の代わりに w[0].id とする必要があります。
下記で目的の動作ができたのですが
>まず一行ごとに分けてそれぞれを JSON.parse するという方法もありますが。
これは下記のやり方で合っていますか?
<script>
window.onload=function(){
x='{"id":"1"}{"id":"2"}';
xx=x.split("}");
for(j=0;j<xx.length;j++){
w=JSON.parse(xx[j]+"}");
alert(w["id"]);
}
}
</script>
色んなやり方があることがわかりました。
ありがとうございました
解決したなら、BA選出か、自己解決の投稿をし、質問を閉じて下さい。
![guest](/img/icon/icnUserSample.jpg)
回答1件
あなたの回答
tips
プレビュー