2

我有一个 JSON 问题。

以下代码是发生错误的地方。我已经验证结果字符串如下。

{"name":"test", "num1":1.0, "num2":2.0}

这就是代码。

byte[] raw = new byte[1536];

try{

   DatagramPacket packet = new DatagramPacket( raw, raw.length ); 
   mSocket.receive( packet ); //Multicast Socket declared in another part of the program
   String result = new String(packet.getData(), 0, packet.getLength());
   JSONObject jObj = new JSONObject(result);
   String name = jObj.getString("name");
}
catch (JSONException e){

}
catch(Exception eX){

}

但是,我收到带有以下错误的 JSONException。

name 没有值。

我的 JSON 语法有问题吗?

谢谢,

这就是字符串向我展示的内容

这就是 json 对象向我展示的内容

4

2 回答 2

1

看起来编码有问题。您是否尝试过指定 UTF-8

String response = new String(packet.getData(), 0, packet.getLength(), "UTF-8");

我不确定问题可能是什么。您的其余代码看起来是正确的。

于 2012-06-18T18:57:42.483 回答
0
String result = "{\"name\":\"test\", \"num1\":1.0, \"num2\":2.0}";
JSONObject data = new JSONObject(result);
System.out.println(data.getString("name"));
System.out.println(data.get("num1"));
System.out.println(data.get("num2"));
于 2012-06-18T19:07:36.817 回答