Как кодировать вложенный JSONObject в Java? - PullRequest
0 голосов
/ 06 июля 2019

Я должен отправить 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"}

...