【发布时间】:2019-11-15 19:47:38
【问题描述】:
我想在android中使用httpurlconnection向服务器发布一些参数,我的数据是一个嵌套的JsonObject,我必须先对其进行编码,但这是错误的,因为我从服务器收到状态错误,这是我的编码函数和Jsonobject:
private static String encodeParams(JSONObject params) throws Exception {
StringBuilder result = new StringBuilder();
boolean first = true;
Iterator<String> itr = params.keys();
while(itr.hasNext()){
String key= itr.next();
Object value = params.get(key);
if (first)
first = false;
else
result.append("&");
result.append(URLEncoder.encode(key, "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(value.toString(), "UTF-8"));
}
return result.toString();
}
我的嵌套 json:
JSONObject postDataParams = new JSONObject();
postDataParams.put("name", "Manjeet");
postDataParams.put("email", "manjeet@gmail.com");
JSONObject par = new JSONObject();
par.put("class", "a");
par.put("family", "aray");
postDataParams.put("par", par);
【问题讨论】:
-
我认为第二个 jsonobject 编码错误
-
请记录你的错误,我认为你必须递归编码你的对象
-
我的服务器端错误处理,他们说你发布的信息是错误的,如何递归编码我的对象?
-
好的,你能把你的编码结果放在上面的例子中吗?
-
我发送测试 url 的数据,在 php 代码中说只是打印发布的所有内容,在 android 中我收到:{"par":"{\"class\":\"a\ ",\"family\":\"aray\"}","email" : "manjeet@gmail.com","name" : "Manjeet"}
标签: java json httpurlconnection encode