java - 使用 json-simple 解码 JSON 时出现问题

标签 java json

我遵循了有关如何使用 java 解码 json 的教程:https://code.google.com/p/json-simple/wiki/DecodingExamples

在我的项目中我得到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);

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

最佳答案

肯定有不可打印/不可见的字符。我建议您使用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}", ""));
<小时/>

and how can i get the single values? For example device_id from this obj?

在您的情况下,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"); //14

关于java - 使用 json-simple 解码 JSON 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27457701/

相关文章:

java - 在 Mac 上将 Java 版本永久设置为 8

java - 如何打包 java web 应用程序

Android-我从服务器获取 PDF(或)JPG(或)PNG 文件形式的 Json 响应。如何处理它以供用户查看(或)下载

java - 为什么 Eclipse 提示该项目指定编译器合规性 1.8,但使用了 JRE 11?

java - 如何重写其类定义不可访问的Object的toString?

java - JUnit : Should the class under tests' instance variables be initialised in setUp()?

function - 使用 implode 不显示给定列的全部值

json - 未加密的容器 JSON Swift 可解码

javascript - 在 Rails 4.2 应用程序中使用 JSON

json - Bash/JQ 解析错误 : Expected separator between values at line 1, 第 254 列