How to parse following JSOn DATA - android

[
{
"ORDERID": [
"Epp144534354354",
"Epp14453sdfgsfd",
"Epp14487484",
"Epp144454464646"
],
"ADDRESS": " MUMBAI",
"FOLLOW_UPDATE": "25/5/2017",
"SIGN_IMAGE": "sign.png",
"DATE_TIME": "2017-05-02 17:52:09.0",
"EMAIL": "abhi#abhi.con",
"IMAGE_1": "image1.jpg",
"COMMENT": "gshshshsh",
"IMAGE_3": "image3.jpg",
"NAME": "abhi",
"MOBILE": "22416545",
"IMAGE_2": "image2.jpg"
}
]
I want to parse above json data then how to parse the json in android how to parse code in java

You can try this.Here is JSON parsing in android.
String response=" [\n" +
"{ \"ORDERID\": [ \"Epp144534354354\", \"Epp14453sdfgsfd\", \"Epp14487484\", \"Epp144454464646\"],\n" +
"\n" +
"\"ADDRESS\": \" 26, Wakad Road Samarth Colony, Omkar Society, Pimple Nilakh Pimpri-Chinchwad, Maharashtra 411027\",\n" +
"\n" +
"\"FOLLOW_UPDATE\": \"25/5/2017\",\n" +
"\n" +
"\"SIGN_IMAGE\": \"http://192.168.0.108:8084/MarketingApplicationImages/IMAGES//sign.png\",\n" +
"\n" +
"\"DATE_TIME\": \"2017-05-02 17:52:09.0\",\n" +
"\n" +
"\"EMAIL\": \"abhi#abhi.con\",\n" +
"\n" +
"\"IMAGE_1\": \"http://192.168.0.108:8084/MarketingApplicationImages/IMAGES//image1.jpg\",\n" +
"\n" +
"\"COMMENT\": \"gshshshsh\",\n" +
"\n" +
"\"IMAGE_3\": \"http://192.168.0.108:8084/MarketingApplicationImages/IMAGES//image3.jpg\",\n" +
"\n" +
"\"NAME\": \"abhi\",\n" +
"\n" +
"\"MOBILE\": \"8149608493\",\n" +
"\n" +
"\"IMAGE_2\": \"http://192.168.0.108:8084/MarketingApplicationImages/IMAGES//image2.jpg\"\n" +
" }]";
try {
JSONArray jArray=new JSONArray(response);
for (int i = 0; i <jArray.length() ; i++) {
JSONObject jonj=jArray.getJSONObject(i);
JSONArray orderArray=jonj.getJSONArray("ORDERID");
for (int j = 0; j <orderArray.length(); j++) {
Log.e("array value"," ..... "+orderArray.getString(i));
}
Log.e("address"," ..... "+jonj.getString("ADDRESS"));
Log.e("FOLLOW_UPDATE"," ..... "+jonj.getString("FOLLOW_UPDATE"));
Log.e("SIGN_IMAGE"," ..... "+jonj.getString("SIGN_IMAGE"));
}
} catch (JSONException e) {
e.printStackTrace();
}

To parse json please follow this basic rules which will help you in long run.
First check if json is valid or not, paste your json response and click validate json.
To view json content in proper format to understand better use paste your data in text section and switch to view section to view it.
Then use GSON library to parse the data(refer any online tutorial)
You would require pojo's for GSON use paste json response in the text box section which is located on the left hand side and then on the right hand side set source type as JSON annotation type as GSON and click on the preview at the bottom of the page, copy it and use it.

Related

Why am I getting "java.lang.String cannot be converted to JSONObject" error?

I getting
"Value SAMPLE_JSON_RESPONSE of type java.lang.String cannot be
converted to JSONObject"
error. I think I have to format the 'SAMPLE_JSON_RESPONSE', if so please tell me how do I do that ?
private static final String SAMPLE_JSON_RESPONSE = "{\"type\":\"FeatureCollection\",\"metadata\":{\"generated\":1462295443000,\"url\":\"http://Earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2016-01-01&endtime=2016-01-31&minmag=6&limit=10\",\"title\":\"USGS Earthquakes\",\"status\":200,\"api\":\"1.5.2\",\"limit\":10,\"offset\":1,\"count\":10},\"features\":[{\"type\":\"Feature\",\"properties\":{\"mag\":7.2,\"place\":\"88km N of Yelizovo, Russia\",\"time\":1454124312220,\"updated\":1460674294040,\"tz\":720,\"url\":\"http://Earthquake.usgs.gov/earthquakes/eventpage/us20004vvx\",\"detail\":\"http://Earthquake.usgs.gov/fdsnws/event/1/query?eventid=us20004vvx&format=geojson\",\"felt\":2,\"cdi\":3.4,\"mmi\":5.82,\"alert\":\"green\",\"status\":\"reviewed\",\"tsunami\":1,\"sig\":798,\"net\":\"us\",\"code\":\"20004vvx\",\"ids\":\",at00o1qxho,pt16030050,us20004vvx,gcmt20160130032510,\",\"sources\":\",at,pt,us,gcmt,\",\"types\":\",cap,dyfi,finite-fault,general-link,general-text,geoserve,impact-link,impact-text,losspager,moment-tensor,nearby-cities,origin,phase-data,shakemap,tectonic-summary,\",\"nst\":null,\"dmin\":0.958,\"rms\":1.19,\"gap\":17,\"magType\":\"mww\",\"type\":\"Earthquake\",\"title\":\"M 7.2 - 88km N of Yelizovo, Russia\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[158.5463,53.9776,177]},\"id\":\"us20004vvx\"},\n" +
"{\"type\":\"Feature\",\"properties\":{\"mag\":6.1,\"place\":\"94km SSE of Taron, Papua New Guinea\",\"time\":1453777820750,\"updated\":1460156775040,\"tz\":600,\"url\":\"http://Earthquake.usgs.gov/earthquakes/eventpage/us20004uks\",\"detail\":\"http://Earthquake.usgs.gov/fdsnws/event/1/query?eventid=us20004uks&format=geojson\",\"felt\":null,\"cdi\":null,\"mmi\":4.1,\"alert\":\"green\",\"status\":\"reviewed\",\"tsunami\":1,\"sig\":572,\"net\":\"us\",\"code\":\"20004uks\",\"ids\":\",us20004uks,gcmt20160126031023,\",\"sources\":\",us,gcmt,\",\"types\":\",cap,geoserve,losspager,moment-tensor,nearby-cities,origin,phase-data,shakemap,tectonic-summary,\",\"nst\":null,\"dmin\":1.537,\"rms\":0.74,\"gap\":25,\"magType\":\"mww\",\"type\":\"Earthquake\",\"title\":\"M 6.1 - 94km SSE of Taron, Papua New Guinea\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[153.2454,-5.2952,26]},\"id\":\"us20004uks\"},\n" +
"{\"type\":\"Feature\",\"properties\":{\"mag\":6.3,\"place\":\"50km NNE of Al Hoceima, Morocco\",\"time\":1453695722730,\"updated\":1460156773040,\"tz\":0,\"url\":\"http://Earthquake.usgs.gov/earthquakes/eventpage/us10004gy9\",\"detail\":\"http://Earthquake.usgs.gov/fdsnws/event/1/query?eventid=us10004gy9&format=geojson\",\"felt\":117,\"cdi\":7.2,\"mmi\":5.28,\"alert\":\"green\",\"status\":\"reviewed\",\"tsunami\":0,\"sig\":695,\"net\":\"us\",\"code\":\"10004gy9\",\"ids\":\",us10004gy9,gcmt20160125042203,\",\"sources\":\",us,gcmt,\",\"types\":\",cap,dyfi,geoserve,impact-text,losspager,moment-tensor,nearby-cities,origin,phase-data,shakemap,tectonic-summary,\",\"nst\":null,\"dmin\":2.201,\"rms\":0.92,\"gap\":20,\"magType\":\"mww\",\"type\":\"Earthquake\",\"title\":\"M 6.3 - 50km NNE of Al Hoceima, Morocco\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-3.6818,35.6493,12]},\"id\":\"us10004gy9\"},\n" +
"{\"type\":\"Feature\",\"properties\":{\"mag\":7.1,\"place\":\"86km E of Old Iliamna, Alaska\",\"time\":1453631430230,\"updated\":1460156770040,\"tz\":-540,\"url\":\"http://Earthquake.usgs.gov/earthquakes/eventpage/us10004gqp\",\"detail\":\"http://Earthquake.usgs.gov/fdsnws/event/1/query?eventid=us10004gqp&format=geojson\",\"felt\":1816,\"cdi\":7.2,\"mmi\":6.6,\"alert\":\"green\",\"status\":\"reviewed\",\"tsunami\":1,\"sig\":1496,\"net\":\"us\",\"code\":\"10004gqp\",\"ids\":\",at00o1gd6r,us10004gqp,ak12496371,gcmt20160124103030,\",\"sources\":\",at,us,ak,gcmt,\",\"types\":\",cap,dyfi,finite-fault,general-link,general-text,geoserve,impact-link,impact-text,losspager,moment-tensor,nearby-cities,origin,phase-data,shakemap,tectonic-summary,trump-origin,\",\"nst\":null,\"dmin\":0.72,\"rms\":2.11,\"gap\":19,\"magType\":\"mww\",\"type\":\"Earthquake\",\"title\":\"M 7.1 - 86km E of Old Iliamna, Alaska\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-153.4051,59.6363,129]},\"id\":\"us10004gqp\"},\n" +
"{\"type\":\"Feature\",\"properties\":{\"mag\":6.6,\"place\":\"215km SW of Tomatlan, Mexico\",\"time\":1453399617650,\"updated\":1459963829040,\"tz\":-420,\"url\":\"http://Earthquake.usgs.gov/earthquakes/eventpage/us10004g4l\",\"detail\":\"http://Earthquake.usgs.gov/fdsnws/event/1/query?eventid=us10004g4l&format=geojson\",\"felt\":11,\"cdi\":2.7,\"mmi\":3.92,\"alert\":\"green\",\"status\":\"reviewed\",\"tsunami\":1,\"sig\":673,\"net\":\"us\",\"code\":\"10004g4l\",\"ids\":\",at00o1bebo,pt16021050,us10004g4l,gcmt20160121180659,\",\"sources\":\",at,pt,us,gcmt,\",\"types\":\",cap,dyfi,geoserve,impact-link,impact-text,losspager,moment-tensor,nearby-cities,origin,phase-data,shakemap,tectonic-summary,\",\"nst\":null,\"dmin\":2.413,\"rms\":0.98,\"gap\":74,\"magType\":\"mww\",\"type\":\"Earthquake\",\"title\":\"M 6.6 - 215km SW of Tomatlan, Mexico\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-106.9337,18.8239,10]},\"id\":\"us10004g4l\"},\n" +
"{\"type\":\"Feature\",\"properties\":{\"mag\":6.7,\"place\":\"52km SE of Shizunai, Japan\",\"time\":1452741933640,\"updated\":1459304879040,\"tz\":540,\"url\":\"http://Earthquake.usgs.gov/earthquakes/eventpage/us10004ebx\",\"detail\":\"http://Earthquake.usgs.gov/fdsnws/event/1/query?eventid=us10004ebx&format=geojson\",\"felt\":51,\"cdi\":5.8,\"mmi\":6.45,\"alert\":\"green\",\"status\":\"reviewed\",\"tsunami\":1,\"sig\":720,\"net\":\"us\",\"code\":\"10004ebx\",\"ids\":\",us10004ebx,pt16014050,at00o0xauk,gcmt20160114032534,\",\"sources\":\",us,pt,at,gcmt,\",\"types\":\",associate,cap,dyfi,geoserve,impact-link,impact-text,losspager,moment-tensor,nearby-cities,origin,phase-data,shakemap,\",\"nst\":null,\"dmin\":0.281,\"rms\":0.98,\"gap\":22,\"magType\":\"mww\",\"type\":\"Earthquake\",\"title\":\"M 6.7 - 52km SE of Shizunai, Japan\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[142.781,41.9723,46]},\"id\":\"us10004ebx\"},\n" +
"{\"type\":\"Feature\",\"properties\":{\"mag\":6.1,\"place\":\"12km WNW of Charagua, Bolivia\",\"time\":1452741928270,\"updated\":1459304879040,\"tz\":-240,\"url\":\"http://Earthquake.usgs.gov/earthquakes/eventpage/us10004ebw\",\"detail\":\"http://Earthquake.usgs.gov/fdsnws/event/1/query?eventid=us10004ebw&format=geojson\",\"felt\":3,\"cdi\":2.2,\"mmi\":2.21,\"alert\":\"green\",\"status\":\"reviewed\",\"tsunami\":0,\"sig\":573,\"net\":\"us\",\"code\":\"10004ebw\",\"ids\":\",us10004ebw,gcmt20160114032528,\",\"sources\":\",us,gcmt,\",\"types\":\",cap,dyfi,geoserve,impact-text,losspager,moment-tensor,nearby-cities,origin,phase-data,shakemap,tectonic-summary,\",\"nst\":null,\"dmin\":5.492,\"rms\":1.04,\"gap\":16,\"magType\":\"mww\",\"type\":\"Earthquake\",\"title\":\"M 6.1 - 12km WNW of Charagua, Bolivia\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-63.3288,-19.7597,582.56]},\"id\":\"us10004ebw\"},\n" +
"{\"type\":\"Feature\",\"properties\":{\"mag\":6.2,\"place\":\"74km NW of Rumoi, Japan\",\"time\":1452532083920,\"updated\":1459304875040,\"tz\":540,\"url\":\"http://Earthquake.usgs.gov/earthquakes/eventpage/us10004djn\",\"detail\":\"http://Earthquake.usgs.gov/fdsnws/event/1/query?eventid=us10004djn&format=geojson\",\"felt\":8,\"cdi\":3.4,\"mmi\":3.74,\"alert\":\"green\",\"status\":\"reviewed\",\"tsunami\":0,\"sig\":594,\"net\":\"us\",\"code\":\"10004djn\",\"ids\":\",us10004djn,gcmt20160111170803,\",\"sources\":\",us,gcmt,\",\"types\":\",cap,dyfi,geoserve,impact-text,losspager,moment-tensor,nearby-cities,origin,phase-data,shakemap,tectonic-summary,\",\"nst\":null,\"dmin\":1.139,\"rms\":0.96,\"gap\":33,\"magType\":\"mww\",\"type\":\"Earthquake\",\"title\":\"M 6.2 - 74km NW of Rumoi, Japan\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[141.0867,44.4761,238.81]},\"id\":\"us10004djn\"},\n" +
"{\"type\":\"Feature\",\"properties\":{\"mag\":6.5,\"place\":\"227km SE of Sarangani, Philippines\",\"time\":1452530285900,\"updated\":1459304874040,\"tz\":480,\"url\":\"http://Earthquake.usgs.gov/earthquakes/eventpage/us10004dj5\",\"detail\":\"http://Earthquake.usgs.gov/fdsnws/event/1/query?eventid=us10004dj5&format=geojson\",\"felt\":1,\"cdi\":2.7,\"mmi\":7.5,\"alert\":\"green\",\"status\":\"reviewed\",\"tsunami\":1,\"sig\":650,\"net\":\"us\",\"code\":\"10004dj5\",\"ids\":\",at00o0srjp,pt16011050,us10004dj5,gcmt20160111163807,\",\"sources\":\",at,pt,us,gcmt,\",\"types\":\",cap,dyfi,geoserve,impact-link,impact-text,losspager,moment-tensor,nearby-cities,origin,phase-data,shakemap,tectonic-summary,\",\"nst\":null,\"dmin\":3.144,\"rms\":0.72,\"gap\":22,\"magType\":\"mww\",\"type\":\"Earthquake\",\"title\":\"M 6.5 - 227km SE of Sarangani, Philippines\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[126.8621,3.8965,13]},\"id\":\"us10004dj5\"},\n" +
"{\"type\":\"Feature\",\"properties\":{\"mag\":6,\"place\":\"Pacific-Antarctic Ridge\",\"time\":1451986454620,\"updated\":1459202978040,\"tz\":-540,\"url\":\"http://Earthquake.usgs.gov/earthquakes/eventpage/us10004bgk\",\"detail\":\"http://Earthquake.usgs.gov/fdsnws/event/1/query?eventid=us10004bgk&format=geojson\",\"felt\":0,\"cdi\":1,\"mmi\":0,\"alert\":\"green\",\"status\":\"reviewed\",\"tsunami\":0,\"sig\":554,\"net\":\"us\",\"code\":\"10004bgk\",\"ids\":\",us10004bgk,gcmt20160105093415,\",\"sources\":\",us,gcmt,\",\"types\":\",cap,dyfi,geoserve,losspager,moment-tensor,nearby-cities,origin,phase-data,shakemap,\",\"nst\":null,\"dmin\":30.75,\"rms\":0.67,\"gap\":71,\"magType\":\"mww\",\"type\":\"Earthquake\",\"title\":\"M 6.0 - Pacific-Antarctic Ridge\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[-136.2603,-54.2906,10]},\"id\":\"us10004bgk\"}],\"bbox\":[-153.4051,-54.2906,10,158.5463,59.6363,582.56]}";
private QueryUtils() {
public static ArrayList<Earthquake> extractEarthquakes() {
ArrayList<Earthquake> earthquakes = new ArrayList<>();
try {
JSONObject baseJsonResponse = new JSONObject(SAMPLE_JSON_RESPONSE);
JSONArray earthquakeArray = baseJsonResponse.getJSONArray("features");
for (int i = 0; i < earthquakeArray.length(); i++) {
JSONObject currentEarthquake = earthquakeArray.getJSONObject(i);
JSONObject properties = currentEarthquake.getJSONObject("properties");
String magnitude = properties.getString("mag");
String location = properties.getString("place");
String time = properties.getString("time");
Earthquake earthquake = new Earthquake(magnitude, location, time);
earthquakes.add(earthquake);
}
} catch (JSONException e) {
Log.e("QueryUtils", "Problem parsing the Earthquake JSON results", e);
}
return earthquakes;
}
In order to create a JSON object from a string is has to be properly escaped and it currently isn't
There is a lot of JSON in your post so I've taken the first line of the JSON to use as an example (this would be the first features object). I then unescaped the JSON and then validated the json. There are many tools to do this, but I used https://www.freeformatter.com/json-escape.html for formatting and https://jsonlint.com/ for validating the JSON. I found a few issues with the JSON object (around the new line \n escaping). I've been able to then escape the JSON by pasting it into Android Studio as shown below and the JSON now parses the string into a JSONObject.
I suggest you do the same and go line by line until you have validated all of the JSON and then paste the valid JSON between the quotation marks private static final String SAMPLE_JSON_RESPONSE = "";
Android Studio (and hopefully other IDEs should then escape the JSON correctly, or you'll have to use a JSON escaping utility)
private static final String SAMPLE_JSON_RESPONSE = "{\n" +
"\t\"type\": \"FeatureCollection\",\n" +
"\t\"metadata\": {\n" +
"\t\t\"generated\": 1462295443000,\n" +
"\t\t\"url\": \"http://Earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2016-01-01&endtime=2016-01-31&minmag=6&limit=10\",\n" +
"\t\t\"title\": \"USGS Earthquakes\",\n" +
"\t\t\"status\": 200,\n" +
"\t\t\"api\": \"1.5.2\",\n" +
"\t\t\"limit\": 10,\n" +
"\t\t\"offset\": 1,\n" +
"\t\t\"count\": 10\n" +
"\t},\n" +
"\t\"features\": [{\n" +
"\t\t\"type\": \"Feature\",\n" +
"\t\t\"properties\": {\n" +
"\t\t\t\"mag\": 7.2,\n" +
"\t\t\t\"place\": \"88km N of Yelizovo, Russia\",\n" +
"\t\t\t\"time\": 1454124312220,\n" +
"\t\t\t\"updated\": 1460674294040,\n" +
"\t\t\t\"tz\": 720,\n" +
"\t\t\t\"url\": \"http://Earthquake.usgs.gov/earthquakes/eventpage/us20004vvx\",\n" +
"\t\t\t\"detail\": \"http://Earthquake.usgs.gov/fdsnws/event/1/query?eventid=us20004vvx&format=geojson\",\n" +
"\t\t\t\"felt\": 2,\n" +
"\t\t\t\"cdi\": 3.4,\n" +
"\t\t\t\"mmi\": 5.82,\n" +
"\t\t\t\"alert\": \"green\",\n" +
"\t\t\t\"status\": \"reviewed\",\n" +
"\t\t\t\"tsunami\": 1,\n" +
"\t\t\t\"sig\": 798,\n" +
"\t\t\t\"net\": \"us\",\n" +
"\t\t\t\"code\": \"20004vvx\",\n" +
"\t\t\t\"ids\": \",at00o1qxho,pt16030050,us20004vvx,gcmt20160130032510,\",\n" +
"\t\t\t\"sources\": \",at,pt,us,gcmt,\",\n" +
"\t\t\t\"types\": \",cap,dyfi,finite-fault,general-link,general-text,geoserve,impact-link,impact-text,losspager,moment-tensor,nearby-cities,origin,phase-data,shakemap,tectonic-summary,\",\n" +
"\t\t\t\"nst\": null,\n" +
"\t\t\t\"dmin\": 0.958,\n" +
"\t\t\t\"rms\": 1.19,\n" +
"\t\t\t\"gap\": 17,\n" +
"\t\t\t\"magType\": \"mww\",\n" +
"\t\t\t\"type\": \"Earthquake\",\n" +
"\t\t\t\"title\": \"M 7.2 - 88km N of Yelizovo, Russia\"\n" +
"\t\t},\n" +
"\t\t\"geometry\": {\n" +
"\t\t\t\"type\": \"Point\",\n" +
"\t\t\t\"coordinates\": [158.5463, 53.9776, 177]\n" +
"\t\t},\n" +
"\t\t\"id\": \"us20004vvx\"\n" +
"\t}]\n" +
"}";
JSONObject baseJsonResponse = new JSONObject(SAMPLE_JSON_RESPONSE);

Trying to parse a JSON result from Rotten Tomatoes API

I'm succeeding in getting the movie's title and year, but somehow not the synopsis. as far as I understand the object's shape they should be reachable in the same way:
JSONObject resultOBJ = new JSONObject(result);
Log.v("hhhh",resultOBJ.toString());
JSONArray movArr = resultOBJ.getJSONArray("movies");
JSONObject movOBJ =movArr.getJSONObject(0);
String title = movOBJ.getString("title");
String synop = movOBJ.getString("synopsis");
nameView.setText(title);
synopView.setText(synop);
the object I receive looks like this (sans formatting):
{
"total": 1,
"movies": [
{
"critics_consensus": "Deftly blending comedy, ...",
"id": "770672122",
"mpaa_rating": "G",
"ratings": {
"audience_rating": "Upright",
"audience_score": 87,
"critics_rating": "Certified Fresh",
"critics_score": 99
},
"release_dates": {
"dvd": "2010-11-02",
"theater": "2010-06-18"
},
"runtime": 103,
"title": "Toy Story 3",
"year": 2010,
"synopsis": "Pixar returns to their first success with ...
et cetra...
I took your example (copy/paste), closed some gates for Json ond got proper result:
public static void main(String[] args) throws JSONException {
String result = "{" +
" \"total\": 1," +
" \"movies\": [" +
" {" +
" \"id\": \"770672122\"," +
" \"title\": \"Toy Story 3\"," +
" \"year\": 2010," +
" \"mpaa_rating\": \"G\"," +
" \"runtime\": 103," +
" \"critics_consensus\": \"Deftly blending comedy,adventure, and honest emotion, Toy Story 3 is a rare second sequel that really works.\"," +
" \"release_dates\": {" +
" \"theater\": \"2010-06-18\"," +
" \"dvd\": \"2010-11-02\"" +
" }," +
" \"ratings\": {" +
" \"critics_rating\": \"Certified Fresh\"," +
" \"critics_score\": 99," +
" \"audience_rating\": \"Upright\"," +
" \"audience_score\": 87" +
" }," +
" \"synopsis\": \"Pixar returns to their first success with Toy Story 3. The movie begins with Andy leaving for college and donating his beloved toys -- including Woody (Tom Hanks) and Buzz (Tim Allen) -- to a daycare. While the crew meets new friends, including Ken (Michael Keaton), they soon grow to hate their new surroundings and plan an escape. The film was directed by Lee Unkrich from a script co-authored by Little Miss Sunshine scribe Michael Arndt. ~ Perry Seibert, Rovi\"" +
" }" +
" ]" +
"}";
JSONObject resultOBJ = new JSONObject(result);
JSONArray movArr = resultOBJ.getJSONArray("movies");
JSONObject movOBJ =movArr.getJSONObject(0);
String title = movOBJ.getString("title");
String synop = movOBJ.getString("synopsis");
System.out.println(synop);
}
Output:
Pixar returns to their first success with Toy Story 3. The movie begins with Andy leaving for college and donating his beloved toys -- including Woody (Tom Hanks) and Buzz (Tim Allen) -- to a daycare. While the crew meets new friends, including Ken (Michael Keaton), they soon grow to hate their new surroundings and plan an escape. The film was directed by Lee Unkrich from a script co-authored by Little Miss Sunshine scribe Michael Arndt. ~ Perry Seibert, Rovi

how to write java code of the json

I want to convert JSON into java code. My jsoncode as per given below.
{
"nodes": [
{
"node": {
"Name": "rahul Patel",
"Address": "\n\tAhmedabad",
"Date of Birth": "1991-05-03",
"Occupation": "developer",
"Member Since": "3 weeks 4 days"
}
}
]
java code
try {
JSONObject objResponse = new JSONObject(strResponse);
JSONArray jsonnodes = objResponse
.getJSONArray(nodes);
System.out.println("=hello this is DoinBackground");
for (i = 0; i < jsonnodes.length(); i++) {
System.out.println("hello this is for loop of DoinBackground");
JSONObject jsonnode = jsonnodes.getJSONObject(i);
JSONObject jsonnodevalue = jsonnode
.getJSONObject(node);
bean = new UserProfileBean();
bean.name = jsonnodevalue.getString(Name);
listActivities.add(bean);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
Here in logcat I print the value of before for loop System.out.println("=hello this is DoinBackground");,but value can't print under the for loop System.out.println("hello this is for loop of DoinBackground");
NOTE: Please let me know, Is it possible that we cannot used for loop in the code ? if yes then give the solution for that, There is another solution for this given problem.
Thanks.
Your json string is wrong. It must be trminated with }. Fix this and it will work.
Fixed json string:
{
"nodes": [
{
"node": {
"Name": "rahul Patel",
"Address": "\n\tAhmedabad",
"Date of Birth": "1991-05-03",
"Occupation": "developer",
"Member Since": "3 weeks 4 days"
}
}
]
}
Sample code to test:
String j = "{\r\n" +
" \"nodes\": [\r\n" +
" {\r\n" +
" \"node\": {\r\n" +
" \"Name\": \"rahul Patel\",\r\n" +
" \"Address\": \"\\n\\tAhmedabad\",\r\n" +
" \"Date of Birth\": \"1991-05-03\",\r\n" +
" \"Occupation\": \"developer\",\r\n" +
" \"Member Since\": \"3 weeks 4 days\"\r\n" +
" }\r\n" +
" }\r\n" +
" ]\r\n" +
"}";
try{
JSONObject objResponse = new JSONObject(j);
JSONArray jsonnodes = objResponse.getJSONArray("nodes" );
for (int i = 0; i < jsonnodes.length(); i++) {
JSONObject jsonnode = jsonnodes.getJSONObject(i);
JSONObject jsonnodevalue = jsonnode
.getJSONObject("node");
Log.v("name", jsonnodevalue.getString("Name"));
Log.v("address", jsonnodevalue.getString("Address"));
Log.v("occupation", jsonnodevalue.getString("Occupation"));
}
}
catch (Exception e) {
e.printStackTrace();
}
Try using Gson - http://code.google.com/p/google-gson/. Will save a lot of headache.
In your code, however make sure that your JSON string is being parsed properly.
Just to be sure objResponse.getJSONArray(nodes) should be objResponse.getJSONArray("nodes")

How to parse the JSON in android?

"carMake": {
"Tata": [
"FIAT",
"INDICA VISTA",
"INDIGO XL"
],
"Hyndai": [
"SANTRO Xing",
"I10",
"I20",
"ACCENT",
"SONATA"
]
},
I just need to parse this part in my response. I tried with map but I am not getting it solved.
use gson.
http://code.google.com/p/google-gson/
You could try using a JSON Object parser.
Here's a link to an example http://www.jondev.net/articles/Android_JSON_Parser_Example
See the bellow example.
The response string is like this
String jsonStr = '{"menu": {' +
'"id": "file",' +
'"value": "File",' +
'"popup": {' +
'"menuitem": [' +
'{"value": "New", "onclick": "CreateNewDoc()"},' +
'{"value": "Open", "onclick": "OpenDoc()"},' +
'{"value": "Close", "onclick": "CloseDoc()"}' +
']' +
'}' +
'}}';
use the bellow code to parse the json String
// grabbing the menu object
JSONObject jsonObf=new JSONObject(jsonStr);
JSONObject menu = jsonObj.getJSONObject("menu");
// these 2 are strings
String id = menu.getString("id");
String value = menu.getString("value");
// the popop is another JSON object
JSONObject popup = menu.getJSONObject("popup");
// using JSONArray to grab the menuitems from under popop
JSONArray menuitemArr = popupObject.getJSONArray("menuitem");
// lets loop through the JSONArray and get all the items
for (int i = 0; i < menuitemArr.length(); i++) {
// printing the values to the logcat
Log.v(menuitemArr.getJSONObject(i).getString("value").toString());
Log.v(menuitemArr.getJSONObject(i).getString("onclick");
}
In your case, do the simple modifications to achieve the solution.

how to decode json in android

this is my json data
[{"FeedbackId":"1","Phoneid":"9774d56d682e549c","feedbackdate":"2011\/9 \/24","GuestName":"sdf","Address":"sdf","Phone":"456","Email":"sdf","suggestion":"sdf","grievances":"sdf","visitAgain":"0","purposeofvisit":"sdf","flag":"1"},{"FeedbackId":"2","Phoneid":"9774d56d682e549c","feedbackdate":"","GuestName":"sdf","Address":"sdf","Phone":"456","Email":"sdf","suggestion":"sdf","grievances":"sdf","visitAgain":"0","purposeofvisit":"sdf","flag":"1"},{"FeedbackId":"3","Phoneid":"9774d56d682e549c","feedbackdate":"","GuestName":"sdf","Address":"sdf","Phone":"456","Email":"sdf","suggestion":"sdf","grievances":"sdf","visitAgain":"0","purposeofvisit":"sdf","flag":"1"},{"FeedbackId":"4","Phoneid":"9774d56d682e549c","feedbackdate":"2011\/9 \/24","GuestName":"sdf","Address":"dsf","Phone":"456","Email":"sdf","suggestion":"sf","grievances":"sdf","visitAgain":"0","purposeofvisit":"sdf","flag":"1"},{"FeedbackId":"5","Phoneid":"9774d56d682e549c","feedbackdate":"2011\/9 \/24","GuestName":"sdf","Address":"dsf","Phone":"456","Email":"sdf","suggestion":"sf","grievances":"sdf","visitAgain":"0","purposeofvisit":"sdf","flag":"1"},{"FeedbackId":"6","Phoneid":"9774d56d682e549c","feedbackdate":"","GuestName":"xcv","Address":"xcv","Phone":"89","Email":"xcv","suggestion":"xcv","grievances":"xcv","visitAgain":"1","purposeofvisit":"","flag":"1"},{"FeedbackId":"7","Phoneid":"9774d56d682e549c","feedbackdate":"","GuestName":"gfhj","Address":"ghj6678","Phone":"678","Email":"ghjgh","suggestion":"678fgh","grievances":"fgh","visitAgain":"0","purposeofvisit":"sdf","flag":"1"}]
how to decode this?
You should be able to decode using the org.json package. From here:
String json = "{"
+ " \"query\": \"Pizza\", "
+ " \"locations\": [ 94043, 90210 ] "
+ "}";
JSONObject object = (JSONObject) new JSONTokener(json).nextValue();
String query = object.getString("query");
JSONArray locations = object.getJSONArray("locations");
Just use your own JSON instead of theirs.

Categories

Resources