0

我一直在使用 stock 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();
}

我想用杰克逊复制这个,但看不到去哪里,因为它看起来非常不同。我的 JSON 来自我无法控制的 Web 服务。上面的数据只是为了说明,我的实际数据要大得多,因此我想要最好的性能。

4

1 回答 1

1

通常的方法是,您定义一个结构与 JSON 兼容的 Java 类(或多个类),而不是手动切片和切块。像这样:

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 语言访问),或者您只需要大文档中的一小段片段时,它会更好地工作。

于 2012-09-10T20:45:56.903 回答