2016-02-08 4 views
2

Я пытаюсь декодировать объекты json в несколько строк. Я не знаю, как разбирать json-объект.невозможно разобрать json в моей программе java

вот моя JSON строка

{"page_1":"{\"city\":\"Bangalore\",\"locality\":\"Battarahalli\",\"Name_of_Person\":\"xxx\",\"User_email_address\":\"[email protected]\",\"user_phone_number\":\"\",\"sub_locality\":\"\",\"street_name\":\"7th Cross Road, Near Reliance Fresh, T.c Palya,\",\"home_plot_no\":\"45\",\"pin_code\":\"560049\",\"project_society_build_name\":\"Sunshine Layout\",\"landmark_reference_1\":\"\",\"landmark_reference_2\":\"\",\"No_of_Schools\":20,\"No_of_Hospitals\":20,\"No_of_Metro\":0,\"No_of_Mall\":11,\"No_of_Park\":10,\"Distance_of_schools\":1.55,\"Distance_of_Hospitals\":2.29,\"Distance_of_Metro\":0,\"Distance_of_Mall\":1.55,\"Distance_of_Park\":2.01,\"lat\":13.0243273,\"lng\":77.7077906,\"ipinfo\":{\"ip\":\"113.193.30.130\",\"hostname\":\"No Hostname\",\"city\":\"\",\"region\":\"\",\"country\":\"IN\",\"loc\":\"20.0000,77.0000\",\"org\":\"AS45528 Tikona Digital Networks Pvt Ltd.\"}}","page_2":"{\"home_type\":\"Flat\",\"area\":\"1350\",\"beds\":\"3 BHK\",\"bath_rooms\":2,\"building_age\":\"1\",\"floors\":2,\"balcony\":2,\"amenities\":\"premium\",\"amenities_options\":{\"gated_security\":\"\",\"physical_security\":\"\",\"cctv_camera\":\"\",\"controll_access\":\"\",\"elevator\":true,\"power_back_up\":\"\",\"parking\":true,\"partial_parking\":\"\",\"onsite_maintenance_store\":\"\",\"open_garden\":\"\",\"party_lawn\":\"\",\"amenities_balcony\":\"\",\"club_house\":\"\",\"fitness_center\":\"\",\"swimming_pool\":\"\",\"party_hall\":\"\",\"tennis_court\":\"\",\"basket_ball_court\":\"\",\"squash_coutry\":\"\",\"amphi_theatre\":\"\",\"business_center\":\"\",\"jogging_track\":\"\",\"convinience_store\":\"\",\"guest_rooms\":\"\"},\"interior\":\"regular\",\"interior_options\":{\"tiles\":true,\"marble\":\"\",\"wooden\":\"\",\"modular_kitchen\":\"\",\"partial_modular_kitchen\":\"\",\"gas_pipe\":\"\",\"intercom_system\":\"\",\"air_conditioning\":\"\",\"partial_air_conditioning\":\"\",\"wardrobe\":\"\",\"sanitation_fixtures\":\"\",\"false_ceiling\":\"\",\"partial_false_ceiling\":\"\",\"recessed_lighting\":\"\"},\"location\":\"regular\",\"location_options\":{\"good_view\":true,\"transporation_hub\":true,\"shopping_center\":\"\",\"hospital\":\"\",\"school\":\"\",\"ample_parking\":\"\",\"park\":\"\",\"temple\":\"\",\"bank\":\"\",\"less_congestion\":\"\",\"less_pollution\":\"\"},\"maintenance\":\"\",\"maintenance_value\":\"\",\"near_by\":{\"school\":\"\",\"hospital\":\"\",\"mall\":\"\",\"park\":\"\",\"metro\":\"\",\"Near_by_school\":\"Little Champ Gurukulam Pre School \\\/ 1.52 km\",\"Near_by_hospital\":\"Suresh Hospital \\\/ 2.16 km\",\"Near_by_mall\":\"LORVEN LEO \\\/ 2.13 km\",\"Near_by_park\":\"SURYA ENCLAIVE \\\/ 2.09 km\"},\"city\":\"Bangalore\",\"locality\":\"Battarahalli\",\"token\":\"344bd4f0fab99b460873cfff6befb12f\"}"} 

Я попытался как этот

String JSON = "{\"page_1\":{\"city\":\"Bangalore\",\"locality\":\"Anekal\",\"Name_of_Person\":\"sas\",\"User_email_address\":\"[email protected]\",\"user_phone_number\":\"\",\"sub_locality\":\"\",\"street_name\":\"farahana\",\"home_plot_no\":\"50\",\"pin_code\":\"\",\"project_society_build_name\":\"\",\"landmark_reference_1\":\"\",\"landmark_reference_2\":\"\",\"No_of_Schools\":20,\"No_of_Hospitals\":8,\"No_of_Metro\":1,\"No_of_Mall\":1,\"No_of_Park\":0,\"Distance_of_schools\":2.51,\"Distance_of_Hospitals\":0.43,\"Distance_of_Metro\":2.55,\"Distance_of_Mall\":0.89,\"Distance_of_Park\":0,\"lat\":12.7105259,\"lng\":77.6911295,\"ipinfo\":{\"ip\":\"113.193.30.130\",\"hostname\":\"No Hostname\",\"city\":\"\",\"region\":\"\",\"country\":\"IN\",\"loc\":\"20.0000,77.0000\",\"org\":\"AS45528 Tikona Digital Networks Pvt Ltd.\"}}\n 
JSONObject obj = new JSONObject(JSON); 
String city = (String) obj.get("city"); 
System.out.println(city); 

Но он выдает ошибку только

Expected a ',' or '}' at 711 [character 1 line 2] 

будет оценена любая помощь.

+0

это ошибка при разборе. я думаю, что вы упустили правильную структуру json, проверяя, что все «{» и «}» совпадают. –

+0

Ваша начальная строка json: '{" page_1 ":" ... "," page_2 ":" ... "}', поэтому вы не можете получить доступ к городу только с помощью 1 JsonObject. Вам нужно хотя бы использовать JSONObject obj = new JSONObject (JSON); String page_1 = (String) obj.get ("page_1"); Страница JSONObject = новый JSONObject (page_1); String city = (String) page.get ("city"); ' – varren

+0

, когда я использую приведенный выше код.it вызывает следующее исключение. Исключение в потоке" main "java.lang.ClassCastException: org.json.JSONObject не может быть отброшен java.lang.String – Nimmy

ответ

0

вы используете этот JSON. потому что вы оставили близкие фигурные скобки:

{ 
    "page_1": { 
     "city": "Bangalore", 
     "locality": "Anekal", 
     "Name_of_Person": "sas", 
     "User_email_address": "[email protected]", 
     "user_phone_number": "", 
     "sub_locality": "", 
     "street_name": "farahana", 
     "home_plot_no": "50", 
     "pin_code": "", 
     "project_society_build_name": "", 
     "landmark_reference_1": "", 
     "landmark_reference_2": "", 
     "No_of_Schools": 20, 
     "No_of_Hospitals": 8, 
     "No_of_Metro": 1, 
     "No_of_Mall": 1, 
     "No_of_Park": 0, 
     "Distance_of_schools": 2.51, 
     "Distance_of_Hospitals": 0.43, 
     "Distance_of_Metro": 2.55, 
     "Distance_of_Mall": 0.89, 
     "Distance_of_Park": 0, 
     "lat": 12.7105259, 
     "lng": 77.6911295, 
     "ipinfo": { 
      "ip": "113.193.30.130", 
      "hostname": "No Hostname", 
      "city": "", 
      "region": "", 
      "country": "IN", 
      "loc": "20.0000,77.0000", 
      "org": "AS45528 Tikona Digital Networks Pvt Ltd." 
     } 
    } 
} 

вы используете JSon про ворс для отладки JSON: Ссылка http://pro.jsonlint.com/

public class Kunfu { 

    public static void main(String a[]) throws JSONException{ 

     String JSON = "{\"page_1\":{\"city\":\"Bangalore\",\"locality\":\"Anekal\",\"Name_of_Person\":\"sas\",\"User_email_address\":\"[email protected]\",\"user_phone_number\":\"\",\"sub_locality\":\"\",\"street_name\":\"farahana\",\"home_plot_no\":\"50\",\"pin_code\":\"\",\"project_society_build_name\":\"\",\"landmark_reference_1\":\"\",\"landmark_reference_2\":\"\",\"No_of_Schools\":20,\"No_of_Hospitals\":8,\"No_of_Metro\":1,\"No_of_Mall\":1,\"No_of_Park\":0,\"Distance_of_schools\":2.51,\"Distance_of_Hospitals\":0.43,\"Distance_of_Metro\":2.55,\"Distance_of_Mall\":0.89,\"Distance_of_Park\":0,\"lat\":12.7105259,\"lng\":77.6911295,\"ipinfo\":{\"ip\":\"113.193.30.130\",\"hostname\":\"No Hostname\",\"city\":\"\",\"region\":\"\",\"country\":\"IN\",\"loc\":\"20.0000,77.0000\",\"org\":\"AS45528 Tikona Digital Networks Pvt Ltd.\"}}}\n"; 
       JSONObject obj = new JSONObject(JSON); 
       String city = (String) obj.getJSONObject("page_1").get("city"); 
       System.out.println(city); 
}} 

выход:

Bangalore 

Этих код работает хорошо. вы попробуйте, и вы добавляете JSON Jar Ссылка банку файл: http://www.java2s.com/Code/Jar/j/Downloadjavajsonjar.htm

+0

Я получаю следующую ошибку. Исключение в потоке "main" org.json.JSONException: JSONObject ["page_1"] not string.any help ?? – Nimmy

+0

привет, nimmy вы его попробуйте –

0

не умещается это в комментариях, но будет стараться быть коротким:

Первое, что вы получите Expected a ',' or '}' at 711 [character 1 line 2] потому что вы просто скопировали первую половину своего начального json. Ваш начальный Json выглядит так: {"page_1": "...", "page_2": "..."}, но json в вашем коде выглядит как {"page_1": {...}, и вам не хватает закрытия }.

Если вам действительно нужно от вашего JSON кода, вы должны 1) добавить закрытия } к концу Струнный JSON 2) Возьмите page_1 объект первым, а затем взять city строку из него. Вот демо:

String JSON = "{\"page_1\":{\"city\":\"Bangalore\",\"locality\":\"Anekal\",\"Name_of_Person\":\"sas\",\"User_email_address\":\"[email protected]\",\"user_phone_number\":\"\",\"sub_locality\":\"\",\"street_name\":\"farahana\",\"home_plot_no\":\"50\",\"pin_code\":\"\",\"project_society_build_name\":\"\",\"landmark_reference_1\":\"\",\"landmark_reference_2\":\"\",\"No_of_Schools\":20,\"No_of_Hospitals\":8,\"No_of_Metro\":1,\"No_of_Mall\":1,\"No_of_Park\":0,\"Distance_of_schools\":2.51,\"Distance_of_Hospitals\":0.43,\"Distance_of_Metro\":2.55,\"Distance_of_Mall\":0.89,\"Distance_of_Park\":0,\"lat\":12.7105259,\"lng\":77.6911295,\"ipinfo\":{\"ip\":\"113.193.30.130\",\"hostname\":\"No Hostname\",\"city\":\"\",\"region\":\"\",\"country\":\"IN\",\"loc\":\"20.0000,77.0000\",\"org\":\"AS45528 Tikona Digital Networks Pvt Ltd.\"}}}"; 
try { 
    JSONObject obj = new JSONObject(JSON); 
    JSONObject page_1 = obj.getJSONObject("page_1"); 
    String city = page_1.getString("city"); 
    System.out.println(city); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 

Но Json в вашей 1-й строке не то же самое, как и в вашем коде. Ваш начальный Json имеет этот формат: {"page_1": "...", "page_2": "..."}, и, как вы можете видеть, есть строки, а не объекты для значений. Так что это немного отличается, и вот демо:

String JSON = "{\"page_1\":\"{\\\"city\\\":\\\"Bangalore\\\",\\\"locality\\\":\\\"Battarahalli\\\",\\\"Name_of_Person\\\":\\\"xxx\\\",\\\"User_email_address\\\":\\\"[email protected]\\\",\\\"user_phone_number\\\":\\\"\\\",\\\"sub_locality\\\":\\\"\\\",\\\"street_name\\\":\\\"7th Cross Road, Near Reliance Fresh, T.c Palya,\\\",\\\"home_plot_no\\\":\\\"45\\\",\\\"pin_code\\\":\\\"560049\\\",\\\"project_society_build_name\\\":\\\"Sunshine Layout\\\",\\\"landmark_reference_1\\\":\\\"\\\",\\\"landmark_reference_2\\\":\\\"\\\",\\\"No_of_Schools\\\":20,\\\"No_of_Hospitals\\\":20,\\\"No_of_Metro\\\":0,\\\"No_of_Mall\\\":11,\\\"No_of_Park\\\":10,\\\"Distance_of_schools\\\":1.55,\\\"Distance_of_Hospitals\\\":2.29,\\\"Distance_of_Metro\\\":0,\\\"Distance_of_Mall\\\":1.55,\\\"Distance_of_Park\\\":2.01,\\\"lat\\\":13.0243273,\\\"lng\\\":77.7077906,\\\"ipinfo\\\":{\\\"ip\\\":\\\"113.193.30.130\\\",\\\"hostname\\\":\\\"No Hostname\\\",\\\"city\\\":\\\"\\\",\\\"region\\\":\\\"\\\",\\\"country\\\":\\\"IN\\\",\\\"loc\\\":\\\"20.0000,77.0000\\\",\\\"org\\\":\\\"AS45528 Tikona Digital Networks Pvt Ltd.\\\"}}\",\"page_2\":\"{\\\"home_type\\\":\\\"Flat\\\",\\\"area\\\":\\\"1350\\\",\\\"beds\\\":\\\"3 BHK\\\",\\\"bath_rooms\\\":2,\\\"building_age\\\":\\\"1\\\",\\\"floors\\\":2,\\\"balcony\\\":2,\\\"amenities\\\":\\\"premium\\\",\\\"amenities_options\\\":{\\\"gated_security\\\":\\\"\\\",\\\"physical_security\\\":\\\"\\\",\\\"cctv_camera\\\":\\\"\\\",\\\"controll_access\\\":\\\"\\\",\\\"elevator\\\":true,\\\"power_back_up\\\":\\\"\\\",\\\"parking\\\":true,\\\"partial_parking\\\":\\\"\\\",\\\"onsite_maintenance_store\\\":\\\"\\\",\\\"open_garden\\\":\\\"\\\",\\\"party_lawn\\\":\\\"\\\",\\\"amenities_balcony\\\":\\\"\\\",\\\"club_house\\\":\\\"\\\",\\\"fitness_center\\\":\\\"\\\",\\\"swimming_pool\\\":\\\"\\\",\\\"party_hall\\\":\\\"\\\",\\\"tennis_court\\\":\\\"\\\",\\\"basket_ball_court\\\":\\\"\\\",\\\"squash_coutry\\\":\\\"\\\",\\\"amphi_theatre\\\":\\\"\\\",\\\"business_center\\\":\\\"\\\",\\\"jogging_track\\\":\\\"\\\",\\\"convinience_store\\\":\\\"\\\",\\\"guest_rooms\\\":\\\"\\\"},\\\"interior\\\":\\\"regular\\\",\\\"interior_options\\\":{\\\"tiles\\\":true,\\\"marble\\\":\\\"\\\",\\\"wooden\\\":\\\"\\\",\\\"modular_kitchen\\\":\\\"\\\",\\\"partial_modular_kitchen\\\":\\\"\\\",\\\"gas_pipe\\\":\\\"\\\",\\\"intercom_system\\\":\\\"\\\",\\\"air_conditioning\\\":\\\"\\\",\\\"partial_air_conditioning\\\":\\\"\\\",\\\"wardrobe\\\":\\\"\\\",\\\"sanitation_fixtures\\\":\\\"\\\",\\\"false_ceiling\\\":\\\"\\\",\\\"partial_false_ceiling\\\":\\\"\\\",\\\"recessed_lighting\\\":\\\"\\\"},\\\"location\\\":\\\"regular\\\",\\\"location_options\\\":{\\\"good_view\\\":true,\\\"transporation_hub\\\":true,\\\"shopping_center\\\":\\\"\\\",\\\"hospital\\\":\\\"\\\",\\\"school\\\":\\\"\\\",\\\"ample_parking\\\":\\\"\\\",\\\"park\\\":\\\"\\\",\\\"temple\\\":\\\"\\\",\\\"bank\\\":\\\"\\\",\\\"less_congestion\\\":\\\"\\\",\\\"less_pollution\\\":\\\"\\\"},\\\"maintenance\\\":\\\"\\\",\\\"maintenance_value\\\":\\\"\\\",\\\"near_by\\\":{\\\"school\\\":\\\"\\\",\\\"hospital\\\":\\\"\\\",\\\"mall\\\":\\\"\\\",\\\"park\\\":\\\"\\\",\\\"metro\\\":\\\"\\\",\\\"Near_by_school\\\":\\\"Little Champ Gurukulam Pre School \\\\\\/ 1.52 km\\\",\\\"Near_by_hospital\\\":\\\"Suresh Hospital \\\\\\/ 2.16 km\\\",\\\"Near_by_mall\\\":\\\"LORVEN LEO \\\\\\/ 2.13 km\\\",\\\"Near_by_park\\\":\\\"SURYA ENCLAIVE \\\\\\/ 2.09 km\\\"},\\\"city\\\":\\\"Bangalore\\\",\\\"locality\\\":\\\"Battarahalli\\\",\\\"token\\\":\\\"344bd4f0fab99b460873cfff6befb12f\\\"}\"}"; 

try { 
    JSONObject obj = new JSONObject(JSON); 
    String page_1Str = obj.getString("page_1"); 
    JSONObject page_1 = new JSONObject(page_1Str); 
    String city = page_1.getString("city"); 
    System.out.println(city); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 
+0

Я получаю следующую ошибку. Исключение в потоке «main» org.json.JSONException: JSONObject ["page_1"] не строка. – Nimmy

+0

@varren: Это должно быть: 'String page_1Str =" page_1 "; JSONObject page_1 = new JSONObject (page_1Str); 'в противном случае он выдает ошибку, поскольку @Nimmy сказал:« page_1 »не относится к типу String, а' page_1Str' является нулевым, что приводит к следующей ошибке. –

+0

@AxelAmthor @Nimmy Я просто пытаюсь объяснить, что есть ** две разные строки Json, о которых идет речь **, и есть несколько различий в том, как вы их разбираете, сначала пример для '{" page_1 ": {... }} 'case и 2-nd для' {"page_1": "..."} 'Оба примера кода отлично работают для меня [ImageDemo] (https://i.gyazo.com/660c1de02f999747d0519fe195e60f21.png) – varren

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