1

Java スクリプトで次の json 応答を読み取るにはどうすればよいですか?

javascriptで処理するWebサービスのレスポンスなのですが、各投稿タイトルと開始日をどう読めばいいのかわかりません。どんな助けでも感謝できます。

 ([
{
    "submission": {
        "title": "Attended band concert",
        "full": "met with homeroom teacher after concert, very nice, Joker Jr. is         doing well",
        "start_date": "2013-06-18",
        "end_date": null
    }
},
{
    "submission": {
        "title": "she's complaining about",
        "full": "something",
        "start_date": "2013-06-20",
        "end_date": null
    }
}

]);

4

4 に答える 4

0

この例を見てください。

JSON

{
"news1": "This is a first sample news feed",
"news2": "This is a second sample news feed",
"news3": "This is a third sample news feed"
}

HTML

<ul>
  <li><div id="news1" style="height:100px;width:auto"></div> </li>
  <li><div id="news2" style="height:100px;width:auto"></div></li>
  <li><div id="news3" style="height:100px;width:auto"></div> </li>
</ul>

jQuery

<script type="text/javascript">
 $(document).ready(
  function() {
      $.getJSON('script/news1.js', function(jd) {
   $('#news1').append('<p>' + jd.news1 + '</p>');
   $('#news2').append('<p>' + jd.news2 + '</p>');
   $('#news3').append('<p>' + jd.news3 + '</p>');  
   });  
 });
</script> 
于 2013-07-24T11:17:44.390 に答える
0
var data=[
{
    "submission": {
        "title": "Attended band concert",
        "full": "met with homeroom teacher after concert, very nice, Joker Jr. is         doing well",
        "start_date": "2013-06-18",
        "end_date": null
    }
},
{
    "submission": {
        "title": "she's complaining about",
        "full": "something",
        "start_date": "2013-06-20",
        "end_date": null
    }
}]

   `alert(data[0].submission.title)`//it gives the title  
        alert(data[0].submission.start_date)//gives date

for ループを配置して、すべての属性を読み取ることもできます。

   for(var i=0;i<=data.length;i++){
      alert(data[i].submission.title)//gives title
      alert(data[i].submission.start_date)//gives date
}
于 2013-07-24T14:17:32.063 に答える
0

この回答を文字列として取得する場合は、最初と最後で削除する必要があり(ます)。次に、jQuery 関数を使用して文字列を解析して javascript オブジェクトに変換$.parseJSON(string)し、結果のオブジェクトを変数に割り当てると、通常どおり属性にアクセスできます。

var object = $.parseJSON(response.substring(1, response.length-2));

最初の提出のタイトルにアクセスするには を使用object[0].submission.titleし、i 番目の提出のタイトルにアクセスするには を使用しますobject[i].submission.title

于 2013-07-24T11:21:49.567 に答える
0

最初に with を削除()substring()ます。

ネイティブJSON.parse()関数を使用して json オブジェクトを取得します

次に、配列をループします。

var x=xhr.response,
y=x.substring(1,x.length-2),//or -3
o=JSON.parse(y);
for(var a=0;a<o.length;a++){
 var s=o[a].submission;
 console.log(s.title,s.full,s.start_date,s.end_date);
}

近道

var x=xhr.response;
for(var a=0,b;b=JSON.parse(x.substring(1,x.length-2))[a];++a){
 console.log(b.title,b.full,b.start_date,b.end_date);
}

最速の方法 (逆)

var x=JSON.parse(xhr.response.substring(1,xhr.response.length-2)),l=x.length;
while(l--){
 var a=x[l].submission;
 // even if it's reversed l can be used as index for your elements
 console.log(a.title,a.full,a.start_date,a.end_date);
}
于 2013-07-24T11:22:30.050 に答える