2012-03-28 3 views
0

필자는 Serializable 객체에서 벗어나려고하고있다. (캐시하고 움직일 필요가있다. 모두가 Serializable 객체를 사용하지 않는다.) 복잡한 객체를 JSONObjects로 변환하는 write 메소드를 시작한다.Put 메서드를 사용하여 JSONObject 작성하기

요점 : 복잡한 개체에서 JSONObject를 만드는 방법을 배우기 시작했습니다. LocationModel이 보이는 곳

JSONObject toReturn = new JSONObject(); 
    Iterator<LocationModel> locIter = locationList.iterator(); 

    while (locIter.hasNext()) 
    { 
     try { 
      toReturn.put("location", locIter.next()); 
     } catch (JSONException e) { 
     } 
    } 

: 나는 순진하게도 바로이 시도

public class LocationModel implements Serializable { 

private String name; 
private double Longitude; 
private double Latitude; 
private String description; 

public LocationModel(
     basic construtor sets variables above 
} 

public String toString() 
{ 
    return (name + " 8888 " + longitude + "/" + latitude + " !! " + description); 
} 

}

을 지금 (나이어야에) 이상한 것은 사실입니다 최초의 반복자 후 청크 코드가 완료되면 JSONObject를 문자열로 출력하고 다음과 같이 표시됩니다.

{ "location": "LocationName 8888 -1/1 !! 여기에 몇 가지 설명 "}

질문 된 JSONObject에 대한 문서에서

  1. JSONObject.put (이름, 객체)에 대한 언급이없는 객체 호출"그래서/이유는 무엇입니까 방법 toString "기능을 실제로 내 LocationModel 클래스에는 String을 반환하는 다른 함수가 있으므로 문자열을 반환하는 함수가 아닙니다.
+0

음, 지금 막 자바 객체의 문서를 보았습니다.이 객체를 사용할 때 자동으로 호출되는 toString() 메서드가 있습니다. 다른 사람들이 내가해야한다고 생각하면 질문을 삭제할 것입니다. – IamAlexAlright

답변

1

처음에는 gson을 사용하고 필요하면 여분의 속도 나중에 gson을 대체 할 수있는 다른 json 파서 중 일부를 사용합니다. 몇 가지 큰 프로젝트에 사용했고 그 프로젝트에 며칠이 걸렸습니다 : https://sites.google.com/site/gson/gson-user-guide Gson은 json으로 자바 객체를 디코딩하고 인코딩 할 수있는 lib입니다. 매우 가볍지 만 가장 빠르지는 않지만 도메인 객체가있는 한 객체의 크기와 상관없이 객체의 인코딩과 디코딩을 위해 문자 그대로 oneliners와 통합하는 것이 가장 빠릅니다. 함께 작업하는 데이터.

+0

예, 그게 너무 쉽습니다. D – IamAlexAlright

관련 문제