使用javax.json在java中削减json字符串

时间:2015-10-12 18:48:11

标签: java json

我的ajax传递了一个看起来像这样的json数组:

 {"formData":[{"cusID":"2"},{"empID":"1"}],"invoice":578416969}

我正在尝试使用javax.json库获取数据。

JSONObject jsonObj = new JSONObject(jasonString);

我能够获取invoice

的值
Integer invoiceNum = (Integer) jsonObj.get("invoice");

但是,通过执行以下操作,我无法获取cusIDempID的值:

Integer cusId = Integer.parseInt((String) jsonObj.get("cusID"));
Integer empId = Integer.parseInt((String) jsonObj.get("empID"));
  

错误消息:org.json.JSONException:找不到JSONObject [" cusID"]。

我做错了什么?我愿意接受建议,如果您有更好的方法来处理这个json数据,我愿意使用它。

3 个答案:

答案 0 :(得分:1)

cusID实际上是数组formData中第一个对象的属性:

jsonObj.getJsonArray("formData").getJsonObject(0).get("cusID");

应该这样做。

答案 1 :(得分:0)

首先你需要将formData作为一个数组,然后获取第一个元素并获取custId,然后获取第二个元素并获得empID。

答案 2 :(得分:0)

您可以使用Gson()库。 (com.google.gson.Gson) 它让你变得简单。

 JsonArray formData = jsonElement.getAsJsonObject().get("formData").getAsJsonArray();
 Integer cusId = formData.get(0).getAsJsonObject().get("cusID").getAsInt();
 Integer empId = formData.get(1).getAsJsonObject().get("empID").getAsInt();