没有预先定义所有内容的Java JSON反序列化

时间:2015-07-01 19:06:12

标签: java android json gson

我意识到这可能已被问了一百次,但我已经搜索了很多,并且无法找到我特别想要的东西。

这就是我想要的。给定一个字符串data,我想反序列化为一个没有预定义所有字段的对象obj。我希望能够提出我想要的字段,例如obj.getString("stringFieldName")obj.getInt("intFieldName")。我已经将gson用于其他事情,所以如果有可能使用gson,虽然不反对使用其他库,但它会很棒。

3 个答案:

答案 0 :(得分:3)

'标准'Android JSON库(自API 1起)已经提供了这种无类型访问。

JSONObject,例如。 getInt

  

返回按名称映射的值(如果存在且是int或可以强制转换为int,否则抛出)。

除非需要将JSON映射到“本机”Java集合类型,否则这可能是实现请求的最简单方法。它不需要任何额外的库。

答案 1 :(得分:1)

使用Jackson库,您可以使用

注释数据模型类
function BothValid(a,b: pointer): boolean;
// a= rcx
// b= rdx
asm
  lea    rax, [rcx-4]
  lea    r8,  [rdx-4]
  or     r8,  rax
  js @OneOrMoreNullPointers 
  ....       

并且jacksonconverter只会解析您定义的这些字段。其他将被忽略。

答案 2 :(得分:0)

您是否尝试过使用Square的Retrofit?它适用于GSON和Java Annotations,它的设置非常简单。