java - 将库从 org.json 更改为 Jackson 以解析 JSON

标签 java android json parsing jackson

我一直在使用库存 org.json 库并且对此很熟悉。出于性能原因,我现在想使用 Jackson 库,但正在努力适应看起来非常不同的框架。获取以下 JSON:

{"result":[[{"usUserName":"FRED","usActive":true},{"usUserName":"JIM","usActive":true},{"usUserName":"DAVID","usActive":true}]]}

对于 org.json,我对其进行如下解析:

try {
    JSONArray jsonRecordset = response.getJSONArray("result").getJSONArray(0);
    JSONObject jsonFirstRecord = jsonRecordset.getJSONObject(0);
    Log.i("myloginfo", jsonFirstRecord.getString("usUserName"));
} catch (JSONException e) {
    e.printStackTrace();
}

我想与 jackson 一起复制这个,但不知道该去哪里,因为它看起来非常不同。我的 JSON 来 self 无法控制的 Web 服务。上面的数据只是为了说明,我的实际数据要大得多,因此我想要最好的性能。

最佳答案

通常的方法是定义一个具有与 JSON 兼容的结构的 Java 类(或多个类),而不是手动对事物进行切片和切 block 。就像这样:

public class Response {
  public UserInfo[][] result;
}
public class UserInfo {
  public String usUserName;
  public boolean usActive;
}

ObjectMapper mapper = new ObjectMapper(); // must reuse for good performance
Response resp = mapper.readValue(jsonInput, Response.class);
// and use 'resp' however you want, now has the expected data.

也可以像json.org一样使用Jackson,即所谓的树模型;为此,您可以查看教程。当数据不具有良好的对象结构(即,设计时不能从 OO 语言轻松访问),或者您只需要大型文档中的一小段代码时,它的效果会更好。

关于java - 将库从 org.json 更改为 Jackson 以解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12355596/

相关文章:

java - 将 HashMap 转换为 JSONArray,值无法正确输入

java - 正则表达式初始化问题

java - 按下按钮时 Android 应用程序崩溃

javascript - 如何在 knockout observablearray 中按索引访问对象?无法处理绑定(bind)

ios - SWIFT:解析 JSON 对象

ios - 快速 JSON 错误字典?我该怎么办

javascript - Spring Boot应用程序更改页面

从二次方程中提取系数的Java程序

android - 根据 Message 在 handleMessage 中动态更改 onClickListener

java - 尝试在 fragment 选项卡中添加 map 时出错