如何使用 json-simple 解析 JSON 字符串

问题描述 投票:0回答:1

我已经阅读了看起来与我的问题相同的帖子,但我一定错过了一些东西。 我的环境是 Eclipse Mars。 我的JAVA是1.7,我导入了json-simple。 我只是想解析从我的网络服务返回的 json。 如果我需要修改 Web 服务的输出,我可以控制它。 我在

arg[0]
中看到了 json,如下所示,但是对象 obj 为空,当然也是
JSONArray
数组。 我知道我错过了一些基本的东西,但我很困惑并且有点累。

这里是返回的json:

[{"$id":"1","NumberID":121183,"PortfolioID":718,"PropertyID":14489,"Adsource":17287,"PlanTypeID":1,"GreetingFile":"HolidayGreeting.wav","PromptFile1":"senior.leasing.first.wav","Accepts1":2,"PromptAction_ID1":1,"PromptFile2":"Default.wav","Accepts2":2,"PromptAction_ID2":1,"PromptFile3":"Default.wav","Accepts3":2,"PromptAction_ID3":1,"PromptFile4":"Default.wav","Accepts4":2,"PromptAction_ID4":1,"PromptFile5":"Default.wav","Accepts5":2,"PromptAction_ID5":1,"HoldMsgFile1":"SpectrumHold.wav","HoldMsgFile2":"Default.wav","Destination1":15197,"Destination2":15024,"Destination3":0,"UIType_ID":16,"RingCount":0,"Enabled":true,"Spanish":false,"HoldMusicFile":"Hold_Music.wav","Template_ID":41,"FrontLineForward":true,"DisclaimerFIle":"1Silence.wav"}]

这是使用 json-simple 的解析代码:

package parser;
import org.json.simple.*;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

import java.io.*;

public class JsonParser 
{
    private static JSONObject _jsonInput;
   
    public static void main(String[] args)
    {
        //TODO
       
       try{
           JSONParser parser = new JSONParser();
           Object obj = JSONValue.parse(args[0]);
           JSONArray array=(JSONArray)obj;
           String name = array.get(3).toString();
           System.out.println(obj);
       }
       catch(Exception e){
           e.printStackTrace();
       }
    }
    
}
java json-simple
1个回答
2
投票

数组的大小与使用的索引不同

JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader(args[1]));
JSONArray array=(JSONArray)obj;
if (array.size() > 3)
  String name = array.get(3).toString();
© www.soinside.com 2019 - 2024. All rights reserved.