我有一个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并出现以下错误。
名称没有价值。
我的JSON语法有问题吗?
谢谢,
答案 0 :(得分:1)
看起来编码存在问题。您是否尝试过指定UTF-8
String response = new String(packet.getData(), 0, packet.getLength(), "UTF-8");
我不确定问题是什么。其余代码看起来是正确的。
答案 1 :(得分: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"));