JSON 구문 분석은 여기에 대한 토론의 꽤 일반적인 주제 인 것처럼 보입니다. 나는 주변을 둘러 보았고 아직도 내가 찾고있는 것을 발견하지 못했습니다. 는 여기가 서버에 JSON 요청을 보내도록 HttpClient를 사용하고 내 HttpClient를android에서 JSON 문자열 구문 분석
public class CreateJsonRequest {
public static String SendJsonRequest(String URL, Map<String,Object> params){
try{
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(URL);
JSONObject holder = new JSONObject();
for (Map.Entry<String, Object> m : params.entrySet()){
try {
holder.put(m.getKey(), m.getValue());
}
catch (JSONException e) {
Log.e("Hmmmm", "JSONException : "+e);
}
}
StringEntity se;
se = new StringEntity(holder.toString());
httpPost.setEntity(se);
httpPost.setHeader("Accept", "text/json");
httpPost.setHeader("Content-type", "text/json");
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
if(entity != null){
final JSONObject respObject = new JSONObject(EntityUtils.toString(entity));
String result = respObject.toString();
parseJSON(result);
내 코드입니다. 그런 다음 서버는 JSON에서 응답을 반환합니다. 이것은 잘 작동합니다. 이제 여기 내가 곤경에 처해있는 곳입니다. 서버에서 HttpEntity를 받았습니다. 나는 이것을 다음과 같은 문자열로 바꾸고있다. {"Make":"Ford","Year": 1975, "Model":"Mustang"}
이 문자열을 내 parseJSON(String jString)
메서드에 보낼 수있게하려면 키 값 맵을 반환합니다. 필자가 다른 게시물과 다른 점은 parse 메소드가 보낼 JSON 문자열의 키 값 맵을 만들 수 있기를 원한다는 점이다. 그래서 만약 내가 그것을 {"Engine":"v8","Cylinders": 8, "Transmission":"Manual","Gears": 4}
보냈 더라면 여전히 작동 할 것이다. 이게 가능합니까? 그렇다면 올바른 방향으로 조금 움직여 주시겠습니까?
Google의 GSON 라이브러리를 사용해보세요. – binnyb
이것은 'Android'가 아닙니다. 맞습니까? 또는 나는 무엇인가 놓치고 있냐? 그것은 당신이 안드로이드 애플 리케이션에서 사용하는 것은 완전히 무관 한 것처럼 보입니다. – keyser