如何java解析json数组

{
"title":"创建语音",
"content":[
{
"labels":["很好看","很好吃"],
"voiceUrl":"/voice/1323423.pcm",
"voiceText":"很好",
"createDate":"2018-06-11 14:29:43"
},
{
"labels":["很好看1","很好吃"],
"voiceUrl":"/voice/1323423.pcm",
"voiceText":"很好",
"createDate":"2018-07-26 14:30:43"
}
],
"enterpriseId":"20180726"
}
我需要获取title、content、lables、createDate、enterpriseId的值
麻烦各位大神帮帮忙!!!!直接给我代码吧

工具/原料

    安装有eclipse软件的电脑一台

    方法/步骤

    1

    首先我们在eclipse中创建一个java工程,在java工程中创建一个HelloWorld的类,在这个java的入口程序中,我们来创建一个json字符串,并且打印出来,如下图:

    2

    将我们刚刚创建的json字符串打印出来如下所示,可以看出这个json包含了一个大json对象,大json对象里面又包含一个json数组,一个数组里面又包含三个json对象,如下图:

    3

    在java中我们要解析json数组必须借助第三方包,所以这里我们加载一下第三方包,首先我们将鼠标移动到项目名称上面去,然后右键召唤出右键快捷菜单,然后依次点击Build Path->Configure Build Paht...,如下图:

    4

    然后我们按照图中红色方框所示点击Libraries,然后点击Add Library...,如下图所示:

    5

    然后我们继续按照图中所示点击User Library,然后点击Next,如下图:

    6

    然后我们继续按照图中红色方框所示点击User Libraries...,如下图:

    7

    然后我们点击New...,来开始创建我们自己的libraries,如下图:

    8

    然后我们输入我们自己jar库的名字,这里我使用了jsonjar作为我们的名字,如下图:

    9

    接下来为我们的jar库添加jar包,我们按照下图中红色方框所示点击“Add External JARs”,如下图:

    10

    我们添加json相关的jar包,这里涉及json的第三方包主要包括这七个,所以我们把这七个包都引入到我们自己的jar库中去,如下图:

    11

    返回到User Libraries中发现,我们已经引入了所有的jar包,如下图:

    我们按照下图中红色方框所示画勾,然后点击finish,如下图:

    然后我们按照图中红色边框所示点击Apply,然后点击OK,如下图:

    回到我们的工程中,从工程目录中我们可以看到,我们已经添加了自己的名字为jsonjar的jar库,如下图:

    接下来我们回到程序中,在头部添加“import net.sf.json.JSONArray;import net.sf.json.JSONObject;”这两句代码,这两句表示引入了解析json的对象和数组的包,如下图:

    然后我们通过代码“JSONObject.fromObject(json_array)”来将我们之前创建的json字符串转换成json对象,并且通过键值对的方式打印出json对象名字为“employees”的值,如下图:

    打印出的名字为“employees”的json对象的值如下图是一个数组字符串,如下图:

    接下来我们通过代码“jsonobj.getJSONArray("employees")”来将获取的数组字符串转变成为json组数,如下图:

    并且我们打印出json数组的长度,可见程序计算的json数组的长度和我们实际的数组长度相一致,如下图:

    接下来我们通过一个for循环将我们获取的json数组中的值依次取出来,由于数组中又包含3个对象,我们又需要将3个对象使用代码“JSONObject.fromObject(jsonarr.get(i));”将得到的对象字符串变成对象然后再取出来,如下图:

    最后,我们将json数组的所有内容都展示到控制台,这样我们就可以使用java通过第三方json包来解析json数组了,如下图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-27
package java_email.demo;
 
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
 
public class ReadJSON {
    public static void main(String args[]){
             
            JsonParser parser=new JsonParser();  //创建JSON解析器
            String json = "{\"title\":\"创建语音\",\"content\":[{\"labels\":[\"很好看\",\"很好吃\"],\"voiceUrl\":\"/voice/1323423.pcm\",\"voiceText\":\"很好\",\"createDate\":\"2018-06-11 14:29:43\"},{\"labels\":[\"很好看1\",\"很好吃\"],\"voiceUrl\":\"/voice/1323423.pcm\",\"voiceText\":\"很好\",\"createDate\":\"2018-07-26 14:30:43\"}],\"enterpriseId\":\"20180726\"}";
            
            JsonObject object=(JsonObject) parser.parse(json);  //创建JsonObject对象
            
            System.out.println("title="+object.get("title")); //
            System.out.println("enterpriseId="+object.get("enterpriseId")); 
             
            JsonArray array = object.get("content").getAsJsonArray();    //得到为json的数组
            
            System.out.println("content="+array);
            
            for(int i=0;i<array.size();i++){
                JsonObject subObject = array.get(i).getAsJsonObject();
                System.out.println("labels="+subObject.get("labels"));
                System.out.println("createDate="+subObject.get("createDate"));
            }
    }
}

本回答被提问者采纳