我学习了关于如何用java:https://code.google.com/p/json-simple/wiki/DecodingExamples解码json的教程。
在我的项目中我得到了info_string
{"server_ip":"http://localhost:3000/","device_id":14}我想解码:我试过:
System.out.println(info_string);
=> {"server_ip":"http://localhost:3000/","device_id":14}
Object obj = JSONValue.parse(info_string);
System.out.println(obj);
=> null
JSONArray array=(JSONArray)obj;
=> null
System.out.println(array);如您所见,array和obj变量是null,不包含任何数据!我做错什么了?谢谢
发布于 2014-12-13 10:40:43
当然有一些不可打印/看不见的字符。我建议您使用regular expression to remove them,因为如果字符串看起来像
String info_string = " {\"server_ip\":\u0000\"http://localhost:3000/\",\"device_id\":14}";trim()什么也不做。
所以试着:
Object obj = JSONValue.parse(info_string.replaceAll("\\p{C}", ""));我怎样才能得到单一的值呢?例如,来自这个obj的device_id?
在您的示例中,parse将返回一个JSONObject,因此您可以转换结果,然后使用get方法获取与相应键关联的值:
JSONObject obj = (JSONObject) JSONValue.parse(info_string);
String serverIp = (String) obj.get("server_ip"); //http://localhost:3000/
long deviceId = (Long) obj.get("device_id"); //14https://stackoverflow.com/questions/27457701
复制相似问题