2011-10-09 2 views
0

나는 안드로이드는 검색에서 웹 서비스 호출을 만들기 위해 하찮게 쉽게 볼 수 있습니다구문 분석 데이터

이 시험 몇 일을 데 (나는 자바와 안드로이드 완전히 새로운 오전 명심하시기 바랍니다) 결과 및 몇 가지 간단한 사용자 정의 코드를 사용하여 값을 얻을 수 있습니다. 예를 들어

:

Assuming a response string as such: {"d":"Hello World"} 

JSONObject obj = new JSONObject(responseString); 
String result = obj.getString("d"); 
//Result = Hello World 

좋아! 따라서 일부 사용자 정의 코드를 사용하여 데이터를 검색 할 수 있습니다. 그러나 사용자 정의 클래스가 포함 된 배열과 같이 더 복잡한 데이터를 사용하기 시작하면이 방법은 간단합니다. .NET 배경에서 왔기 때문에 클래스를 serializable로 표시하고 클래스를 직렬화 및 비 직렬화 할 수있게되었습니다. 예를

public class Movie 
{ 
    public Movie() {} 
    public String Title { get; set; } 
    blah... blah... 
} 

public class MovieList : List<Movie> { } 

public static void Serialize(String path, MovieList movieList) 
{ 
    XmlSerializer serializer = new XmlSerializer(typeof(MovieList)); 

    using (StreamWriter streamWriter = new StreamWriter(path)) 
    { 
     serializer.Serialize(streamWriter, movieList); 
    } 
} 

public static MovieList Deserialize(String path) 
{ 
    XmlSerializer serializer = new XmlSerializer(typeof(MovieList)); 
    using (StreamReader streamReader = new StreamReader(path)) 
    { 
     return (MovieList) serializer.Deserialize(streamReader); 
    } 
} 

를 들어

나는이 XML을 실감하지만 조직을 사용하여 다음 전체 사용자 지정 코드를 내 목표를 달성하는 더 나은 방법이 있는지 당신은 ... 난 그냥 궁금하네요 어느 쪽이든을 내 포인트를 얻을 .json 네임 스페이스?

+0

자바가 아닌 C#으로 태그를 지정했습니다. MonoDroid로 개발하고 있습니까 (따라서 C#은 관련 태그입니다), 아니면 Java로 개발하고 있습니까? – CommonsWare

+0

Java에서 개발 중이 아닙니다. 충분히 공정해야합니다. 아마도 C# 질문으로 표시해서는 안됩니다 ... 지금 변경하십시오. 아니면 환영합니다. –

답변

0

OK, 지금 언어는

JSON 기반의 직렬화 안드로이드에 내장 아무것도 없다 ... :-) 밖으로 정착 우리가했다고. 그러나 JacksonGSON과 같이 타사 JSON 라이브러리에서이 작업을 수행 할 수 있습니다. 하지만 주석에 의존하는 사용자는 Android에서 어려움을 겪을 수 있습니다.

+0

xStream 등의 라이브러리를 사용해 보았습니다. 어쨌든 성능 문제가 발생했으나 성능 문제는 확인하지 못했습니다. 나는 Java로 작성된 것이 아니라 Android 용으로 최적화 된 것을 기대하고 있었다. 나는 할당을 요청하는 Im, LOL을 안다. 고마워요 ... –

+0

@ Maxim Gershkovich : "xStream 같은 라이브러리를 사용해 보았습니다."- 이는 JSON이 아닌 XML 용입니다. "자바로 작성된 것이 아니라 Android 용으로 최적화 된 것을 기대하고있었습니다."- "안드로이드에 최적화 된"것이이 맥락에서 의미할만한 것이 확실하지 않습니다. – CommonsWare

+0

내가 말하고있는 것은 이전의 경험 (예 : XML을 직렬화/비 직렬화하려고 시도했을 때 - 어리석은 경우)이 허용 할 수 없을 정도로 느리다는 것입니다. 분명히이 라이브러리를 살펴보고 Android 기기에서 동일한 성능 문제가 발생하는지 확인합니다. 내 경험에 의하면 자바 기반 라이브러리는 안드로이드에서 항상 잘 작동하지 않는다는 것이었다. Android가 라이브러리를 실행하는 데 필요한 라이브러리를 가지고 있다고 가정합니다. –