0

ajaxのサーブレットから返された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"
});
4

5 に答える 5

3

カンマを忘れたので、値を引用する必要があります

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

編集:確かに=>(念のために)あなたの鍵を引用してください私は本当のJavaの専門家ではありませんが、それを使用するクラスがある場合はそうです。

于 2012-07-13T11:07:29.540 に答える
3

また...あなたは車輪の再発明をすべきではありません。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}
于 2012-07-13T11:09:11.290 に答える
0

Put your keys and values in quotes and seperate your pairs by commas!

于 2012-07-13T11:07:20.227 に答える
0

JSoNが正しくないという事実(他の回答を参照)は別として、オブジェクトをループしていますが、成功関数のパラメーターとして使用したオブジェクトをresponseループする必要がありますdata

それに加えて、データをループするには、サーバーから配列を返す必要があります。つまり、jsonオブジェクトを角かっこ([])で囲みます。

于 2012-07-13T11:11:03.157 に答える
0

VDPの回答からわかるように、jsonは正しく形成されていません。各パラメーターの後にコンマを付ける必要があります。

役立つかもしれないいくつかのポインタ:

  • http://jsonlint.com/に貼り付けることで、jsonが正しく形成されているかどうかを検証できます。

  • アプリケーションで大量のjson処理を実行している場合は、json-simplegsonなどの標準のJSONライブラリを使用することをお勧めします。

于 2012-07-13T11:11:27.337 に答える