我必须将此http帖子从JavaScript转换为Android。
我在使用cids: []
时遇到了问题。我无法使用此符号[ ]
创建jsonobject。它应该是一个空数组。
这是我的JavaScript:
var makeAjaxRequest = function () {
Ext.getBody().mask('Loading...', 'x-mask-loading', false);
var obj = {
uid: 1161,
cids: []
};
Ext.Ajax.request({
url: 'http://test.com.my',
method: 'POST',
params: { json: Ext.encode(obj) },
success: function (response, opts) {
Ext.getCmp('content').update(response.responseText);
Ext.getCmp('status').setTitle('Static test.json file loaded');
Ext.getBody().unmask();
var data = Ext.decode(response.responseText);
Ext.Msg.alert('result::', data.r[1].id, Ext.emptyFn);
}
});
};
这是我的Android代码:
String[] temp = null;
JSONObject json = new JSONObject();
HttpPost post = new HttpPost(url);
json.put("uid", 1161);
json.put("cids", temp);
List postParams = new ArrayList();
postParams.add(new BasicNameValuePair("json", json.toString()));
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(postParams);
tv1.setText(postParams.toString());
post.setEntity(entity);
post.setHeader("Accept", "application/json");
response = client.execute(post);
答案 0 :(得分:2)
使用String[] temp = null;
是不对的。
使用String[] temp = {};
。这表示一个空数组。
答案 1 :(得分:1)
我无法使用此符号“[]”创建一个jsonobject。
^^这基本上是你想要创建的JSON数组。 JSONObjects有{},JSONArrays有[]。
public void writeJSON() {
JSONObject user = new JSONObject();
JSONObject user2;
user2 = new JSONObject();
try {
user.put("dish_id", "1");
user.put("dish_custom", "2");
user.put("quantity", "2");
user.put("shared", "2");
user2.put("dish_id", "2");
user2.put("dish_custom", "2");
user2.put("quantity", "4");
user2.put("shared", "3");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JSONArray notebookUsers = new JSONArray();
notebookUsers.put(user);
notebookUsers.put(user2);
System.out.println("the JSON ARRAY is"+notebookUsers);
将为用户和用户2的JSON数组提供符号“[]”