3 일 전 - Last Topicjson 객체를 얻고 수정하고 게시하려면 어떻게합니까?
나는 json 응답을 받았고 문자열로 변경했습니다. Json Response는 User-Object를 나타냅니다. User-Object 내에서 특정 프로젝트를 검색하여 삭제하려고합니다. 그 후, 나는 HttpPost를 통해 다시 게시하고 싶다. JsonArray의 속성을 저장하여 특정 프로젝트에 대한 검색
private static String getContent(HttpResponse response) {
HttpEntity entity = response.getEntity();
if (entity == null) return null;
BufferedReader reader;
try {
reader = new BufferedReader(new InputStreamReader(entity.getContent()));
String line = reader.readLine();
reader.close();
return line;
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
String StringResponse = getContent(JsonResponse);
JSONObject jsonObject = new JSONObject(StringResponse);
JSONArray ProjectsArray= jsonObject.getJSONArray("projects");
. 프로젝트를 삭제
ArrayList<Integer> indexesToRemove = new ArrayList<Integer>();
for (int i = 0; i < projectsArray.length; i++) {
JSONObject current = projectsArray.get(i);
if (current.get("projectKey") == "**ProjectName**") {
indexesToRemove.add(i);
}
}
... 완벽하게 작동하고 내 검색 프로젝트가 삭제
for (int i = indexesToRemove.size()-1; i>=0; i--)
{
projectsArray.remove(indexesToRemove.get(i));
}
. 하지만 문제는 HttpPost를 통해 수정 된 UserObject/String을 다시 게시하고 싶다는 것입니다. 그리고 내 삭제 된 프로젝트는 JsonArray "projectsArray"에 있고 처음부터 내 문자열에는 없습니다. 나는
HttpPost UserChange = new HttpPost (TestUserURL+user); //TODO:
UserChange.setHeader("Accept", "application/json");
UserChange.setHeader("Content-type", "application/json");
params = new StringEntity("ModifiedJsonString", HTTP.UTF_8); // How do i get the complete Json string?
UserChange.setEntity(params);
HttpResponse UserChangeResponse = httpclient.execute(UserChange);
HttpEntity entity2 = UserChangeResponse.getEntity();
if (entity2 != null) {
entity2.consumeContent();
}
내가 처음부터 완전한 JSON 파일을 포함하는 "ModifiedJsonString"을 필요로 ... "projectsArray"를 게시 할 수 없습니다.
params = new StringEntity(ModifiedJsonString, HTTP.UTF_8);
안부
위대한! 답장을 보내 주셔서 감사합니다. 해결책은 다음과 같습니다. jsonObject.put ("projects", listOfNodes); – InfoEngi