亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 json 數組中提取值

如何從 json 數組中提取值

翻閱古今 2023-10-13 10:27:54
我正在調用一個 Api,它返回給我這個響應[    {        "message": {            "type": "String",            "value": "Msg1,Msg2,Msg3,Msg4",            "valueInfo": {}        },        "Decision": {            "type": "Boolean",            "value": false,            "valueInfo": {}        }    },    {        "message": {            "type": "String",            "value": "[Msg2, Msg3,Msg5]",            "valueInfo": {}        },        "Decision": {            "type": "Boolean",            "value": false,            "valueInfo": {}        }    }]現在我必須從響應中一一提取消息和決策我該如何做到這一點。不向下,一個對象中可能有多個消息。
查看完整描述

3 回答

?
LEATH

TA貢獻1936條經驗 獲得超7個贊

嘗試這個 :


String res = "[\n" +

        "    {\n" +

        "        \"message\": {\n" +

        "            \"type\": \"String\",\n" +

        "            \"value\": \"Msg1,Msg2,Msg3,Msg4\",\n" +

        "            \"valueInfo\": {}\n" +

        "        },\n" +

        "        \"Decision\": {\n" +

        "            \"type\": \"Boolean\",\n" +

        "            \"value\": false,\n" +

        "            \"valueInfo\": {}\n" +

        "        }\n" +

        "    },\n" +

        "    {\n" +

        "        \"message\": {\n" +

        "            \"type\": \"String\",\n" +

        "            \"value\": \"[Msg2, Msg3,Msg5]\",\n" +

        "            \"valueInfo\": {}\n" +

        "        },\n" +

        "        \"Decision\": {\n" +

        "            \"type\": \"Boolean\",\n" +

        "            \"value\": false,\n" +

        "            \"valueInfo\": {}\n" +

        "        }\n" +

        "    }\n" +

        "]";


try {

    JSONArray jsonArray = new JSONArray(res);


    JSONObject[] messages = new JSONObject[jsonArray.length()];

    JSONObject[] Decision = new JSONObject[jsonArray.length()];



    for(int i =0; i<jsonArray.length(); i++){

        messages[i] = ((JSONObject) (jsonArray.get(i))).getJSONObject("message");

        Decision[i] = ((JSONObject) (jsonArray.get(i))).getJSONObject("Decision");



    }

} catch (JSONException e) {

    e.printStackTrace();

}


查看完整回答
反對 回復 2023-10-13
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

假設您可以訪問 jquery 并需要使用獨立數組中的消息,

$(a).map(function (i, item) {return {item.message.value}).get();


查看完整回答
反對 回復 2023-10-13
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

valuein的類型message不確定。有時是xxx,xxx,xxx,有時是[xxx,xxx,xxx]。所以你可能需要這個。


public static void main(String[] args) {

    String json = "[\n" +

            "    {\n" +

            "        \"message\": {\n" +

            "            \"type\": \"String\",\n" +

            "            \"value\": \"Msg1,Msg2,Msg3,Msg4\",\n" +

            "            \"valueInfo\": {}\n" +

            "        },\n" +

            "        \"Decision\": {\n" +

            "            \"type\": \"Boolean\",\n" +

            "            \"value\": false,\n" +

            "            \"valueInfo\": {}\n" +

            "        }\n" +

            "    },\n" +

            "    {\n" +

            "        \"message\": {\n" +

            "            \"type\": \"String\",\n" +

            "            \"value\": \"[Msg2, Msg3,Msg5]\",\n" +

            "            \"valueInfo\": {}\n" +

            "        },\n" +

            "        \"Decision\": {\n" +

            "            \"type\": \"Boolean\",\n" +

            "            \"value\": false,\n" +

            "            \"valueInfo\": {}\n" +

            "        }\n" +

            "    }\n" +

            "]";



    List<MessageDecision> list = new Gson().fromJson(json,

            new TypeToken<List<MessageDecision>>(){}.getType());


    for (MessageDecision data: list){

        System.out.println(data.message.getValueList());

    }


}


class MessageDecision {

    public Message message;

    public Decision Decision;


    class Message {

        String type;

        String value;


        //

        List<String> valueList;



        public List<String> getValueList() {

            if (type.equals("String")) {

                if (value!=null) {

                    if (value.startsWith("[")) {


                        valueList = new Gson().fromJson(value, new TypeToken<List<String>>() {

                        }.getType());

                    } else {

                        String tempValues[] = value.split(",");

                        valueList = Arrays.asList(tempValues);

                    }

                }

                return valueList;

            }

            return null;

        }

    }


    class Decision {

        String type;

        Object value;

    }

}


查看完整回答
反對 回復 2023-10-13
  • 3 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號