Android 使用org.json解析数据
(请记住,我对Java和Android完全陌生) 经过几次测试,我发现在Android中调用web服务检索结果并使用一些简单的自定义代码获取值非常容易 例如: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 太好了!
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使用进行优化。