Я должен отправить params на сервер с httpurlconnection в android, на сервере я говорю, что print evry вещь, которая публикуется и мои params - это вложенный jsonobject, который я кодирую, но второй 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);
и я кодирую это:
writer.write(encodeParams(postDataParams));
и это функция encodeParams:
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();
}
и это php на сервере:
<?php
print_r(json_encode($_POST));
?>
и выводится:
{"par": "{\" class \ ": \" a \ ", \" family \ ": \" aray \ "}", "email": "manjeet@gmail.com", "name": " Manjeet "}
Но я хочу, чтобы результат был таким:
{"par": "{" class ":" a "," family ":" aray "}", "email": "manjeet@gmail.com", "name": "Manjeet"}