【问题标题】:parse json string using simple-json使用 simple-json 解析 json 字符串
【发布时间】:2015-10-23 18:28:44
【问题描述】:

我已阅读似乎与我的问题相同的帖子,但我一定遗漏了一些东西。我的环境是 Eclipse Mars。我的 JAVA 是 1.7,我已经导入了 json-simple。我只是想解析从我的网络服务返回的 json。如果我需要修改其输出,我将控制 Web 服务。我在arg[0] 中看到了json,如下所述,但是Object obj 为null,因为当然是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】:

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

    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();
    

    【讨论】:

    • 感谢罗曼的回复。要解析的字符串在 args[0] 中。我现在收到“FileNotFound”错误。
    • 我误按了 RETURN,所以这是我剩下的问题:我正在传递一个 WebApi 调用的结果,它是一个 Json 字符串。 Json-Simple 可以用字符串代替文件吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多