Json转实体类 双层嵌套的遍历方法
前端传入多个jsonObject
需求:遍历内容如下,需要得到data的所有至并赋值到实体类
因为第一曾For循环得到的是第一层“{”,直接getJsonArrey(data)得到的是一个
[{"pkequ": "",
"picnum": "111",
"pkproduct": 27317},
{"pkequ": "",
"picnum": "111",
"pkproduct": 27317}]
此时如果直接用实体类接Product po = JSON.parseObject (jb2.toString(), MBasicProductEquPo.class);是错误的,会爆错 期望{但是【,因此需要再次对data进行遍历,
[
{
"pkproduct": 2,
"proname": "HR0",
"data": [
{
"pkequ": "",
"picnum": "111",
"pkproduct": 27317
},
{
"pkequ": "",
"picnum": "222",
"pkproduct": 27317
},
{
"pkequ": "",
"picnum": "333",
"pkproduct": 27317
}
]
},
{
"pkproduct": 27316,
"proname": "H",
"data": [
{
"pkequ": "",
"picnum": "555",
"pkproduct": 27316
},
{
"pkequ": "",
"picnum": "333",
"pkproduct": 27316
},
{
"pkequ": "",
"picnum": "222",
"pkproduct": 27316
}
]
}
]
public ComResponse bindJsonToENtity(@RequestBody List<JSONObject> jsonObject)throws MyException {
try {
List<MBasicProduct> ProducList =new ArrayList<>();
JSONArray jay =new JSONArray();
for (JSONObject jb2:jsonObject) {
for (Object jb3:jb2.getJSONArray("data")) {
MBasicProduct = JSON.parseObject (jb3.toString(), MBasicProductEquPo.class); jb3.toString();
ProducList .add(po);
}
}
} catch (Exception e){
return ComResponse.creat(e.getCause() + "", e.getMessage());
}
}