我认为我所拥有的JSON
字符串工作正常。我偶然发现了我的单元测试,发现使用google JSON
库进行的Gson
解析不再有效了。有没有人知道为什么这不起作用?
String json = "{\"hybrid\":\"true\",\"trimName\":\"act\"}";
JsonObject data = new Gson().fromJson(json, JsonObject.class);
System.out.println(" JSON is "+data);
System.out.println(" JSON is "+data.get("hybrid"));
我得到的输出是
JSON is {}
is hybrid ? null
答案 0 :(得分:1)
JsonObject
中的解决方案以及使用JsonParser
将JSON字符串直接转换为JsonObject
而不使用Gson
。
JsonParser parser = new JsonParser();
JsonObject jsonObject = (JsonObject) parser.parse(json);
System.out.println(" JSON is " + jsonObject);
System.out.println(" JSON is " + jsonObject.get("hybrid"));
输出:
JSON is {"hybrid":"true","trimName":"act"}
JSON is "true"
您可以使用Map<String, String>
和TypeToken
Type
String json = "{\"hybrid\":\"true\",\"trimName\":\"act\"}";
Type type = new TypeToken<Map<String, String>>() {}.getType();
Map<String, String> data = new Gson().fromJson(json, type);
System.out.println(" JSON is " + data);
System.out.println(" JSON is " + data.get("hybrid"));
输出:
JSON is {hybrid=true, trimName=act}
JSON is true