如何为这个Json数据格式生成JsonStringer?

时间:2011-09-30 07:06:09

标签: android json

你好,我有一个JSON数据格式,任何人都可以帮我为这个字符串制作动态JSONStringer对象

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

我用过

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

但是服务器反过来给我提供了错误消息,而不接受数据。

3 个答案:

答案 0 :(得分:4)

实际上我做的是正确的事......一切都好...... 问题出在org.json包中,用Base64字符串

是不准确的

我切换到另一个图书馆并且都工作了..

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

请参阅上述问题以获取另一个json库

这是org.json的问题

我切换到另一个......并且一切正常

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

答案 1 :(得分:3)

这是一种做你想做的事情:

// 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

答案 2 :(得分:0)

您可以使用JSONObject类来实现此目的  http://developer.android.com/reference/org/json/JSONObject.html