2013-07-24 6 views
0

Я хочу получить значение от JSON с помощью Java.Как получить значение JSON с помощью Java

Значение, которое я хочу получить, это city и country.

Я использую JSON-простой библиотеки Вот JSON:

{ 
    "company" : { 
    "name" : { 
     "leader" : "leader_name" 
    }, 
    "location" : { 
     "city" : "city_name", 
     "country" : "country_name" 
    } 
    } 
} 

Это код:

package readjson; 

import java.io.FileReader; 
import org.json.simple.JSONObject; 
import org.json.simple.parser.JSONParser; 

public class ReadJson { 

public static void main(String[] args) { 
    JSONParser jp = new JSONParser(); 
    try { 

     Object object = jp.parse(new FileReader("/home/azuharu/output.json")); 
     JSONObject jso = (JSONObject) object; 

     String city = (String) jso.get("city"); 
     String country = (String) jso.get("country"); 

     System.out.println("city: "+city); 
     System.out.println("country: "+country); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    }  
    } 
} 

город и страна является недействительным, и я ожидаю, что это будет. Почему не печатается правильное значение?

+0

Какую ошибку вы получаете? –

+0

Я не знаю, почему нет ошибки, значение null, город: null страна: null – user1973423

+1

Знаете ли вы? Вы никогда не печатаете «город» или «страна». В свой вопрос укажите * реальный * код. –

ответ

2

Вы должны перейти к /company/location первым:

JSONObject jso = (JSONObject) object; 
JSONObject company = (JSONObject) jso.get("company"); 
JSONObject location = (JSONObject) company.get("location"); 
String city = (String) location.get("city"); 
String country = (String) location.get("country"); 
+0

большое спасибо, вы действительно мне помогли – user1973423

Смежные вопросы