1、在一个项目中,有一个这样的json对象:
{“words”:[“佳晨实业”,”蜀南庭苑”,”高兰路”,”复联二”,”腻铪”]}
想要取出words的值 放到数组中,本来直接json.get(“words”)然后强转成String[]结果出错,提示jsonArray不能强转成数组。
然后就还是老老实实的一个个取出jsonArray中的值放到数组中,代码如下:
JSONArray jsonArray = (JSONArray) jsonObject.get("words");
String[] array = new String[jsonArray.length()];
for(int i=0;i<jsonArray.length();i++)
{
array[i] = jsonArray.getString(i);
}
System.out.println(Arrays.toString(array));
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
输出数组时,用Array.toString(array)来输出,如果直接print(array)会输出内存地址,比如@123321等
2、接下来是关于json字符串、json对象、json数组之间的关系
上面完整的json字符串:
{“userword”:[{“name”:”我的常用词”,”words”:[“佳晨实业”,”蜀南庭苑”,”高兰路”,”复联二”,”腻铪”]},{“name”:”我的好友”,”words”:[“李馨琪”,”鹿晓雷”,”张集栋”,”周家莉”,”叶震珂”,”熊泽萌”]}]}
下面是完整的代码:
//json字符串转json对象,contents1就是那个json字符串
JSONObject jsonObject = new JSONObject(contents1);
JSONArray jsonArray = (JSONArray) jsonObject.get("userword");
//从json数组中获取一个json对象
jsonObject = jsonArray.getJSONObject(0);
jsonArray = (JSONArray) jsonObject.get("words");
String[] array = new String[jsonArray.length()];
for(int i=0;i<jsonArray.length();i++)
{
array[i] = jsonArray.getString(i);
}
System.out.println(Arrays.toString(array));
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12