MKJParekh
MKJParekh

Reputation: 34291

how to generate JsonStringer for this Json Data Format?

hello i have a JSON data format can anyone please help me to make dynamic JSONStringer object for this String

    {"Text":"Hello Simple Text",
"Files":[{"ContentType":"image/png",
"Content":"iVBORw0KGgoAAAANSUhEUgAAAR8AAACMCAIAAADKsDpDAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH2wYWDzIB3zSYdQAAAAd0RVh0QXV0aG9yAKmuzEgAAAAMdEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRFWHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVYdERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3VyY2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAABAElEQVR4nO2de1zUVf7/3+dzmwsMoCgDXgARBO/"}],
"AuthToken":"XkWQRd65+H+iPtlOoAEYAR0jrzB1o3UV"}

i have used

jsonstr = new JSONStringer().object().key("Text")
                            .value(msg).key("Files").array().object().key(
                                    "ContentType").value("image/png").key(
                                    "Content").value(enimg)
                            .endObject().endArray().key("AuthToken").value(token)
                            .endObject();

but the server is giving me fault message in return, not accepting the data.

Upvotes: 5

Views: 7391

Answers (3)

Vito Gentile
Vito Gentile

Reputation: 14356

This is a way to do what you want:

// Creating root JSONObject
JSONObject json = new JSONObject();

// Put in it a String field
json.put("Text", "Hello sample");

// Creating a JSONArray
JSONArray arr = new JSONArray();

//Creating the element to populate the array
JSONObject element = new JSONObject();
element.put("ContentType","image/png");
element.put("Content","iVBORw0K...gDXgARBO/");
// Put it in the array
arr.put(element);

// Put the array and other fileds in the root JSONObject
json.put("Files", arr);
json.put("AuthToken", "XkWQ...o3UV");

// Get the JSON String
String s = json.toString();
// Get formatted and indented JSON String
String s2 = json.toString(4);
// 4 is the number of spaces to indent the string

Upvotes: 3

MKJParekh
MKJParekh

Reputation: 34291

actually i was doing the right thing..everything was OK.. the problem was with org.json package it was not accurate with Base64 string

i switched to another library and all worked..

https://stackoverflow.com/questions/338586/a-better-java-json-library

see the above question for another json libraries

that was problem with org.json

i switched to another..and all it works

nesting too deep in JSON... should I switch to XML?

Upvotes: 4

Nikolai Borisik
Nikolai Borisik

Reputation: 1511

You can use JSONObject class for this purpose http://developer.android.com/reference/org/json/JSONObject.html

Upvotes: 0

Related Questions