0

(请记住,我对 Java 和 Android 完全陌生)

完成了一些测试后,我可以看到在 Android 中进行 Web 服务调用检索结果并使用一些简单的自定义代码获取值非常容易。

例如:

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

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

伟大的!这使得使用一些自定义代码检索数据变得非常容易。但是,如果您开始使用更复杂的数据(例如包含自定义类的数组),则此方法变得不那么简单。来自 .NET 背景,我习惯于将一个类标记为可序列化,并且能够快速序列化和反序列化一个类。

例如

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,但你明白我的意思......无论哪种方式,我只是想知道是否有更好的方法来实现我的目标,然后使用 org.json 命名空间完成自定义代码?

4

1 回答 1

0

好的,现在我们已经确定了语言... :-)

Android 中没有内置任何内容用于基于 JSON 的序列化。但是,有第三方 JSON 库可以做到这一点,例如JacksonGSON。不过,那些依赖注解的人可能会在使用 Android 时遇到一些困难。

于 2011-10-09T12:46:32.377 回答