2015-10-23 3 views
2

Я прочитал сообщения, которые оказались такими же, как мой вопрос, но я должен что-то упустить. Моя среда - Eclipse Mars. Мой JAVA - 1,7, и я импортировал json-simple. Я просто хочу разобрать json, который возвращается из моего веб-сервиса. Я могу управлять веб-сервисом, если мне нужно изменить его вывод. Я вижу json в arg[0], как указано ниже, однако Object obj является нулевым, так как это, конечно, массив JSONArray. Я знаю, что у меня нет чего-то основного, но я в тупике и немного устал.parse json string using simple-json

Вот возвращается 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-простой:

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

} 

ответ

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

Спасибо, Роман за ваш ответ. Строка, подлежащая анализу, находится в args [0]. Теперь я получаю ошибку «FileNotFound». – MikeReynolds

+0

Я ошибочно ударил RETURN, так что вот остальная часть моего вопроса: я передаю результат вызова WebApi, который является строкой Json. Может ли Json-Simple взять строку вместо файла? – MikeReynolds