2014-02-20 90 views
0

這是從服務器我的JSON響應: -無法解析JSON字符串

{ 
    "Details": [ 
     { 
      "ID": 234872, 
      "Name": "asdfg", 
      "Address": "hasgdkjfgsjaf,asfuysdfg", 
      "Email": "", 
      "Mobile": "", 
      "Profile": "gwekjrg ", 
      "Amt": 0, 
      "Date": "" 
     } 
    ] 
} 

這是我寫來分析它,並在我的應用程序使用它我的js代碼: -

function getDetail(madeUrl) { 
     $.ajax({ 
     url: madeUrl, 
     type : "GET", 
     dataType : "json", 
     contentType: "application/json", 
     success: function(msg) { 
       $("#detail tr").remove(); 
       var searchResponse = msg.Details; 
       var html; 
       $.each(searchResponse, function(index, data) { 
        html = '<tr><td>' + data.Name + '</td> <td>' + data.Amt + '</td></tr>' + data.Profile + '</td></tr>' + data.Date + '</td></tr>'; 
        $("#detail").append(html); 
       }); 
       $('#report').fadeIn(); 
      }, 
      error: function (xhr, ajaxOptions, thrownError) { 
       alert("errorstatus: " + xhr.status + " ajaxoptions: " + ajaxOptions + " throwError: " + thrownError); 
      }, 
      complete : function() { 

      } 
     }); 
} 

但它會拋出一個錯誤,就像無法解析JSON string.Unable找出原因。任何幫助?

+0

這是一個PhoneGap的應用程序不是原生一個 – UjjawalKr

+0

確定服務器返回原來的'JSON'數據 –

+0

是的,我已經檢查了它的有效性...它是有效的JSON – UjjawalKr

回答

0

請試試這段代碼。它對我來說工作得很好。希望它對你有幫助。請告訴我。謝謝。

HTML:

<div id="detail"></div> 

腳本:

var j ='{"Details": [{"ID": "234872","Name": "asdfg","Address": "hasgdkjfgsjaf,asfuysdfg","Email": "","Mobile": "","Profile": "gwekjrg ","Date": ""}]}'; 

var json = $.parseJSON(j).Details; 
$(json).each(function(i,val){ 
    $.each(val,function(k,v){ 
    console.log(k+" : "+ v); 
    $("#detail").append(k+" : "+ v + " <br />"); 
}); 
}); 

演示網址:

Demo

+0

他從服務器接收json,json應該由jquery.get函數自動評估,所以在這裏不需要parseJSON。 – QuickFix

+0

@QuickFix,你是正確的而不是解析,在成功的方法你有json結果。所以你只需將json結果調用到json變量。它會工作.. – Jeba

+0

不工作.. – UjjawalKr

0

如果你有不可分析JSON消息,它意味着您的JSON不會被JQuery視爲有效。可以肯定的是,我會從ajax調用中刪除dataType和contentType(默認數據類型是「智能猜測」,這意味着如果jquery檢測到它或者發送文本,它將自動解析JSon),並在開始時添加以下行成功的功能:

alert(msg === Object(msg)?"json received:\n"+JSON.stringify(msg):"text received:\n"+msg); 
+0

它返回警報中的完整的HTML文件不是響應的數據 – UjjawalKr

+0

當我從代碼中刪除數據類型它會引發一個不同的錯誤,如:TypeError:表達式結果'e'[undefined]不是對象 – UjjawalKr

+0

哪裏madeUrl指向?它是否是遠程服務器? – QuickFix