簡體   English   中英

無法解析AJAX中從Servlet返回的JSON對象

[英]Not able to parse the JSON object returned from servlet in AJAX

我無法解析從ajax中的servlet返回的Json對象,

我需要將JSON對象值放在相對字段中

從我的Java代碼中,我以JSON的形式發送以下字符串

 String  webVisitorDetails = "{"+"companyName : "+webVisitor.getCompanyName()+
                                                "address : "+webVisitor.getProfessionalAddress()+
                                                "city : "+webVisitor.getCity()+
                                                "zipCode : "+webVisitor.getZipCode()+
                                                "clientId : "+webVisitor.getCustomerAccountNumber()+ "}";


response.setContentType("application/json");
                response.getWriter().write(webVisitorDetails);

在ajax中

$.ajax({
    url: "ships",
    data: {
        email: email.toString()
    },
    success: function(data) {
        $.each(data, function(k, v) {
            console.log(k + " Value " + v);
            $("#city").text(v.city);
            $("#zipcode").text(v.getZipCode);
            $("#Adress").text(v.getProfessionalAddress);
        });
    },
    error: function(data) {
        console.log("error:", data);
    },
    type: "post"
});

您忘記了逗號,應該引用您的值

String  webVisitorDetails = "{
    \"companyName\": \"" + webVisitor.getCompanyName() + "\",
    \"address\": \"" + webVisitor.getProfessionalAddress() + "\",
    \"city\": \"" + webVisitor.getCity() + "\",
    \"zipCode\": \"" + webVisitor.getZipCode() + "\",
    \"clientId\": \"" + webVisitor.getCustomerAccountNumber() + "\"
}";

編輯:確實=>引用您的密鑰(以防萬一)我不是真正的Java專家,但是可以,如果有一個使用它的類。

另外...您不應該重新發明輪子。 Java具有創建“工作” JSON的完美方法。

  Map obj=new LinkedHashMap();
  obj.put("name","foo");
  obj.put("num",new Integer(100));
  obj.put("balance",new Double(1000.21));
  obj.put("is_vip",new Boolean(true));
  obj.put("nickname",null);
  String jsonText = JSONValue.toJSONString(obj);
  System.out.print(jsonText);

  // Result: {"name":"foo","num":100,"balance":1000.21,"is_vip":true,"nickname":null}

將您的鍵和值放在引號中,並用逗號分隔成對的對!

除了您的JSoN不正確(請參閱其他答案)外,您還正在遍歷一個response對象,而應該遍歷用作成功函數參數的data對象。

除此之外,為了遍歷數據,您必須從服務器返回一個數組,即將json對象括在方括號( [] )中。

您可以從VDP的答案中看到,您的json格式不正確。 每個參數后都需要有一個逗號。

還有一些可能有用的指針:

  • 您可以通過將其粘貼在http://jsonlint.com/上來驗證json是否正確形成

  • 如果您在應用程序中進行了大量的json處理,我建議您使用標准的JSON庫,例如json-simplegson

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM