Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用org.json解析数据_Android_.net_Json_Serialization_Org.json - Fatal编程技术网

Android 使用org.json解析数据

Android 使用org.json解析数据,android,.net,json,serialization,org.json,Android,.net,Json,Serialization,Org.json,(请记住,我对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 太好了!

(请记住,我对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);
    }
}
公共类电影
{
公共电影(){}
公共字符串标题{get;set;}
等等…等等。。。
}
公共类电影列表:列表{}
公共静态void序列化(字符串路径,MovieList MovieList)
{
XmlSerializer serializer=新的XmlSerializer(typeof(MovieList));
使用(StreamWriter StreamWriter=新StreamWriter(路径))
{
序列化程序。序列化(streamWriter、movieList);
}
}
公共静态电影列表反序列化(字符串路径)
{
XmlSerializer serializer=新的XmlSerializer(typeof(MovieList));
使用(StreamReader StreamReader=新StreamReader(路径))
{
return(MovieList)序列化程序。反序列化(streamReader);
}
}

我知道这是XML,但你明白我的意思。。。不管是哪种方式,我只是想知道是否有更好的方法来实现我的目标,然后使用org.json名称空间完成自定义代码?

好的,现在我们已经解决了语言问题…:-)


Android中没有内置基于JSON的序列化功能。但是,有第三方JSON库可以做到这一点,如和。但是,那些依赖注释的用户在Android上可能会遇到一些困难。

您将其标记为C#,而不是Java。您是使用MonoDroid(因此C#是一个相关的标记)进行开发,还是使用Java进行开发?不使用Java进行开发。很公平,也许不应该把它标记为C#问题。。。我现在就换,或者你的欢迎2.我试过用一个叫做xStream的库还是什么?无论如何,我遇到了性能问题,但我会检查这些问题。我想我是希望有一个为Android优化的东西,而不是用Java编写的。我知道我要的是allot,哈哈。谢谢你…@Maxim Gershkovich:“我试过使用一个名为xStream的库还是什么的?”——那是XML,不是JSON。“我希望有一些东西是针对Android优化的,而不是仅仅用Java编写的”——我不太确定“针对Android优化”在这种情况下意味着什么。根据我以前的经验(是的,在我尝试序列化/反序列化XML时——这可能很愚蠢),我说的是它速度太慢,令人无法接受。很明显,我将查看这些库,并确定它们在Android设备上是否存在相同的性能问题。(我的直觉说,他们可能)我的经验是,基于Java的库在Android上并不总是工作得很好。这是假设Android甚至有运行库所需的库。我猜他的意思是针对低内存占用和低CPU使用进行优化。