Java 阅读下面的JSON数据并获取状态名称

Java 阅读下面的JSON数据并获取状态名称,java,json,Java,Json,我想从JSON数据中获取状态的名称。 { 展开:渲染字段、名称、架构、操作、editmeta、changelog、VersionedPresentations、, 识别号码:3876562, 自我:https://jira2.abc.com/rest/api/2/issue/3876562, 钥匙:DEVACDMY-35289, 字段:{ 地位:{ 自我:https://jira2.abc.com/rest/api/2/status/3, 说明:, iconUrl:https://jira2.a

我想从JSON数据中获取状态的名称。 { 展开:渲染字段、名称、架构、操作、editmeta、changelog、VersionedPresentations、, 识别号码:3876562, 自我:https://jira2.abc.com/rest/api/2/issue/3876562, 钥匙:DEVACDMY-35289, 字段:{ 地位:{ 自我:https://jira2.abc.com/rest/api/2/status/3, 说明:, iconUrl:https://jira2.abc.com/images/icons/statuses/inprogress.png, 姓名:进行中,, id:3, 状态类别:{ 自我:https://jira2.abc.com/rest/api/2/statuscategory/4, id:4, 关键:不确定, 颜色名称:黄色, 姓名:进行中 } } } } 我试过了,但没用

Map address = ((Map)jo.get("fields"));
          
        // iterating address Map
        Iterator<Map.Entry> itr1 = address.entrySet().iterator();

        while (itr1.hasNext()) {
 Map.Entry pair = itr1.next(); 
Map status=((Map)jo.get(pair.key); 
Iterator<Map.Entry> itr2 =status.entrySet().iterator(); while(itr2.hasNext())
{
itr1=((Map)itr2.next()).entrySet().iterator();
while(itr1.hasNext())
{
Map.Entry pair=itr1.next();
System.out.println(pair.getKey()+":"+pair.getValue());
}}


看看json,它不是一个数组,它只是一个JsonObject,要获得状态名的字符串,需要以相同的方式遍历

要获取状态名称,需要遵循一个层次结构

JSONObject->fields*这也是一个JSONObject*->status*这是 同样是JSON对象*->名称这是字符串

请看下面的代码

String str = "{\n" +
                "    \"expand\": \"renderedFields,names,schema,operations,editmeta,changelog,versionedRepresentations\",\n" +
                "    \"id\": \"3876562\",\n" +
                "    \"self\": \"https://jira2.abc.com/rest/api/2/issue/3876562\",\n" +
                "    \"key\": \"DEVACDMY-35289\",\n" +
                "    \"fields\": {\n" +
                "        \"status\": {\n" +
                "            \"self\": \"https://jira2.abc.com/rest/api/2/status/3\",\n" +
                "            \"description\": \"\",\n" +
                "            \"iconUrl\": \"https://jira2.abc.com/images/icons/statuses/inprogress.png\",\n" +
                "            \"name\": \"In Progress\",\n" +
                "            \"id\": \"3\",\n" +
                "            \"statusCategory\": {\n" +
                "                \"self\": \"https://jira2.abc.com/rest/api/2/statuscategory/4\",\n" +
                "                \"id\": 4,\n" +
                "                \"key\": \"indeterminate\",\n" +
                "                \"colorName\": \"yellow\",\n" +
                "                \"name\": \"In Progress\"\n" +
                "            }\n" +
                "        }\n" +
                "    }\n" +
                "}";
        JSONObject jsonarray = new JSONObject(str);
        JSONObject fields = jsonarray.getJSONObject("fields");
        JSONObject status = fields.getJSONObject("status");
        String name = status.getString("name");
        System.out.println("fields : " + fields);
        System.out.println("status : " + status);
        System.out.println("name: " + name);
输出:-

fields : {"status":{"name":"In Progress","self":"https://jira2.abc.com/rest/api/2/status/3","description":"","iconUrl":"https://jira2.abc.com/images/icons/statuses/inprogress.png","id":"3","statusCategory":{"colorName":"yellow","name":"In Progress","self":"https://jira2.abc.com/rest/api/2/statuscategory/4","id":4,"key":"indeterminate"}}}
status : {"name":"In Progress","self":"https://jira2.abc.com/rest/api/2/status/3","description":"","iconUrl":"https://jira2.abc.com/images/icons/statuses/inprogress.png","id":"3","statusCategory":{"colorName":"yellow","name":"In Progress","self":"https://jira2.abc.com/rest/api/2/statuscategory/4","id":4,"key":"indeterminate"}}
name: In Progress

好啊你真正的问题是什么?我编辑了这个问题,也许现在已经清楚了。