备忘一下,首先
这是一个JsonArrayStr,定制网站定制网站他可以转换为JsonArray。
[{"name":"a1"},{"name":"a2"}]
- 1
这是一个JsonObjectStr,他可以转换为JsonObject。
{"result":[{"name":"a1"},{"name":"a2"}]}
- 1
JsonObject转换为java对象、转换为Java对象
JsonObject的value为JsonArray,对应的java类型为List。在案例中,java代码如下(定制网站这里用的内部类)
@Data@AllArgsConstructor@NoArgsConstructorclass AList{ private List<PersonA> result;}@Data@AllArgsConstructor@NoArgsConstructorclass PersonA{ private String name;}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 使用fastjson转换jsonStr为java对象,完整代码如下
public class JsonTest { public static void main(String[] args) { String strArray ="[{\"name\":\"a1\"},{\"name\":\"a2\"}]"; String strObject ="{\"result\":[{\"name\":\"a1\"},{\"name\":\"a2\"}]}"; // parseArray保证属性key一致即可正确转换 List<PersonA> personAList = JSON.parseArray(strArray, PersonA.class); // parseObject需要保证属性key一致即可正确转换 AList aList = JSON.parseObject(strObject, AList.class); }}@Data@AllArgsConstructor@NoArgsConstructorclass AList{ private List<PersonA> result;}@Data@AllArgsConstructor@NoArgsConstructorclass PersonA{ private String name;}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 使用hutool转换jsonStr为java对象,核心代码如下
List<PersonA> personAList = JSONUtil.toList(JSONUtil.parseArray(strArray), PersonA.class);
- 1
JsonArray转换为JsonObject
已知一个JsonArrayStr,内容为。
[{"name":"a1"},{"name":"a2"}]
- 1
不可以直接parseObject,JsonObject格式为{},且含有键值对。
使用以下方法将JsonArrayStr转换为JsonObject对象:
- 使用fastjson
JSONArray array = JSON.parseArray(strArray); JSONObject jsonObject = new JSONObject(); jsonObject.put("result",array);
- 1
- 2
- 3
- 使用hutool
JSONArray array = JSONUtil.parseObj(strArray);; JSONObject jsonObject = new JSONObject(); jsonObject.put("result",array);
- 1
- 2
- 3
即将JsonArrayStr转换为JsonObjectStr
{"result":[{"name":"a1"},{"name":"a2"}]}
- 1
真的搞不懂,为什么上游传一个json值下来,直接传一个object不行么?不行么?不行么???????
JsonArrayStr 转换为 JsonObjectStr
有什么好说的,加括号,加键。
推荐使用hutool的StrUtil.wrap()
String strArray = "[{\"name\":\"a1\"},{\"name\":\"a2\"}]"; String strObject = StrUtil.wrap(strArray, "{\"result\":", "}");
- 1
- 2
最后得到的值为
{"result":[{"name":"a1"},{"name":"a2"}]}
- 1