首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用json-simple解码JSON的问题

使用json-simple解码JSON的问题
EN

Stack Overflow用户
提问于 2014-12-13 10:11:31
回答 1查看 135关注 0票数 0

我学习了关于如何用java:https://code.google.com/p/json-simple/wiki/DecodingExamples解码json的教程。

在我的项目中我得到了info_string

代码语言:javascript
复制
   {"server_ip":"http://localhost:3000/","device_id":14}

我想解码:我试过:

代码语言:javascript
复制
  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);

如您所见,arrayobj变量是null,不包含任何数据!我做错什么了?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-13 10:40:43

当然有一些不可打印/看不见的字符。我建议您使用regular expression to remove them,因为如果字符串看起来像

代码语言:javascript
复制
String info_string = "   {\"server_ip\":\u0000\"http://localhost:3000/\",\"device_id\":14}";

trim()什么也不做。

所以试着:

代码语言:javascript
复制
Object obj = JSONValue.parse(info_string.replaceAll("\\p{C}", ""));

我怎样才能得到单一的值呢?例如,来自这个obj的device_id?

在您的示例中,parse将返回一个JSONObject,因此您可以转换结果,然后使用get方法获取与相应键关联的值:

代码语言:javascript
复制
JSONObject obj = (JSONObject) JSONValue.parse(info_string);
String serverIp = (String) obj.get("server_ip"); //http://localhost:3000/    
long deviceId = (Long) obj.get("device_id"); //14
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27457701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档