jsonデータを取得する際に問題が発生しています。私は2つの例を作りました。 1つは動作しますが、もう1つは動作しません。そして、私はどちらが必要かを推測します。うん、それは動作しないもの。ここにコードがあります。javascript JSON issue
私はjsonデータを出力するWebサービスを持っていますが、何らかの理由で文字列に余分な[]が追加されていて、一重引用符 ''もありません。 doens'tが動作しないコードを見ると、私は括弧を手動で削除していて、一重引用符を追加していることがわかります。私は文字列を書き込むdivを持っており、それは有効なJsonデータです。その文字列を受け取り、手動で新しい変数を宣言すると、jQuery.parseJSONは正常に動作します。しかし、私は新しく作成されたオブジェクトを解析しますが、動作しません。誰にもアイデアはありますか?
ワークスファイン
$.ajax({
type: "POST",
async: false,
contentType: "application/json; charset=utf-8",
url: "StudiesWebService.asmx/EventList",
data: "{}",
dataType: "json",
success: function(msg) {
var obj = jQuery.parseJSON('{ "id": 1, "title": "Jack STuff", "start": "\/Date(1318939200000)\/", "end": "\/Date(1318950000000)\/", "allDay": false }, { "id": 2, "title": "asdfasdfasdf", "start": "\/Date(1319025600000)\/", "end": "\/Date(1319025600000)\/", "allDay": false}');
var events2 = [];
events2.push({
title: obj.title,
allDay: obj.allDay,
start: 'Tue, 18 Oct 2011 10:00:00 EST',
end: 'Tue, 18 Oct 2011 11:00:00 EST'
});
callback(events2);
},
error: function(e) { $(".external-events").html("An Error Occured" + e); }
});
は動作しません:オブジェクト全体の周りの単一引用符は、単一の文字列にそれを回すだろう追加
$.ajax({
type: "POST",
async: false,
contentType: "application/json; charset=utf-8",
url: "StudiesWebService.asmx/EventList",
data: "{}",
dataType: "json",
success: function(msg) {
var myObj = new String(msg.d);
myObj = myObj.replace("[", "");
myObj = myObj.replace("]", "");
myObj = "'" + myObj + "'";
//at this point myObj output to this:
//'{"id":1,"title":"Mike STuff","start":"\/Date(1318939200000)\/","end":"\/Date(1318950000000)\/","allDay":false},{"id":2,"title":"asdfasdfasdf","start":"\/Date(1319025600000)\/","end":"\/Date(1319025600000)\/","allDay":false}'
var obj1 = jQuery.parseJSON(myObj);
alert(obj1.id); //alert doesn't come up
var events = [];
events.push({
title: obj1.title,
allDay: obj1.allDay,
start: 'Tue, 18 Oct 2011 10:00:00 EST',
end: 'Tue, 18 Oct 2011 11:00:00 EST'
});
callback(events);
},
error: function(e) { $(".external-events").html("An Error Occured" + e); }
});
+1 Jason :) – yoda
ありがとうございました。あなたはこのエラーを修正するだけでなく、自分のコードでいくつか修正しました。私は最近、javascriptとjqueryで作業を始めました。 vb.net環境から来て、C#とjqueryを学ぶことは私の背後にある。 – MikeB55
悪いjsonを吐き出すWebサービスを制御していますか?もしそうなら、ここで補償しようとするのではなく、それを修正するのはなぜですか? –