Android学习笔记(十):jsonArray转array

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