ada*_*ada 1 java primitive json
我需要从不基于标准对象的数据库JSON文档中撤回.
有没有办法使用JAVA将这些文档"反序列化"为原始对象的列表和字典(string,int,bool等...)
任何可以双向执行此操作的库?换句话说,我正在寻找System.Runtime.Serialization.Json的Java计数器部分
几乎http://json.org/上的每个Java库都可以做到这一点,你真的尝试过找东西吗?
例如,杰克逊你会这样做:
ObjectMapper mapper = new ObjectMapper();
Map<String,Object> map = mapper.readValue(json, Map.class);
Run Code Online (Sandbox Code Playgroud)
但创建自己的Java对象来映射通常很方便; 没有必要使用标准对象.例如:
public class MyType {
public String name;
public int age;
// and so on
public Date createTime;
}
MyType instance = mapper.readValue(json, MyType.class);
Run Code Online (Sandbox Code Playgroud)
有关更多示例,您可以查看Jackson教程.
而不是试图强迫JSON难以使用Map<String, Object>或者List<Object>,我推荐一个可以将JSON解析为树模型的库.虽然许多图书馆都能做到这一点,但Google Gson是我的最爱.您可以使用其JsonParser类将JSON解析为以根JsonElement开头的树.一旦你拥有它JsonElement,它应该比一些Object可能是一个List并且可能是一个更容易使用Map.
JsonElement e = new JsonParser().parse(someJson);
if (e.isJsonObject()) {
// JsonObject has many of the same methods as a Map
JsonObject obj = e.getAsJsonObject();
String foo = obj.get("foo").getAsString();
int bar = obj.get("bar").getAsInt();
} else if (e.isJsonArray()) {
JsonArray array = e.getAsJsonArray();
// JsonArray implements Iterable and can be used a lot like a List
for (JsonElement element : array) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
使用这些对象也很容易构建JSON树.
| 归档时间: |
|
| 查看次数: |
9358 次 |
| 最近记录: |