我认为最好理解为什么我在JSON
遇到很多问题,我会向你解释我的目标是什么:
我与Googles App Engine
合作。在那里,我想存储数据。数据看起来像
user - username
question - question
date1 - date1
date2 - date2
Android应用程序具有“简单”功能:发送用户输入的数据并从完整数据库中恢复数据。
好的,好的。
所以我为此寻找了一个好的“API”。关于这个的问题是:“我怎样才能读取数据”和“我如何发送”。 “简单”的原因是:使用JSON
...很多人都对我说。
第一步是显示数据库中的数据。我在python
写道:
json.dumps({"info": [{'user': 'username1', 'question': 'question1', 'date1':'date1', 'date2':'date1'}, {'user': 'username2', 'question': 'question2', 'date1':'date2', 'date2':'date2'}]})
有效。在客户端网站上,我写了Java
这些:
JSONObject ob = new JSONObject(result);
JSONArray arNames = ob.getJSONArray("info");
for(int i = 0; i < arNames.length(); i++){
JSONObject c = arNames.getJSONObject(i);
Log.i("name", c.getString("name"));
Log.i("frage", c.getString("question"));
}
这些也有效。
但是(现在关于线程的主要问题!):
为什么我们使用JSON
进行格式化?!为什么?我可以使用这个数据来创建一个没有JSON
libarys和类的简单“API”。
实施例: 如果我只在服务器网站上说:
!user:user;question:question;date1:date1;date2:date2
!user:user1;question:question1;data2:date3;date2:date3
... and so one...
在客户端网站上:
[READ THE DATA WITH ClientHTTP]
String[] all = result.Split("!");
for(int i = 0; i<all.length; i+= 1)
{
String[] split2 = all[i].Split(";");
String[] user = split2[0].Split(":");
// user[1] holds now the user
String[] split3 = split2[1].Split(";");
String[] questinn = split3.Split(":");
// question[1] holds now the question
... AND SO ONE!
那么,为什么我使用JSON
?我的选择或示例也是如此。但是用我自己的语法..
感谢您的帮助
答案 0 :(得分:3)
JSON是一种标准格式,它的实现使其易于使用 - 没有split()和其他必要的东西。此外,它支持各种编程语言(如您自己的示例中的Python和Java),因此它提供了一种在完全不同的系统之间交换数据的简单方法。 并且经过深思熟虑,例如也可以使用':'或';'处理问题在里面。建议的解决方案失败的情况。
答案 1 :(得分:1)
我不确定JSON但是alreday是一个解释JSON的线程(谷歌知道一切)。也许你可以在这里找到一些帮助:
What is JSON and why would I use it?
http://www.copterlabs.com/blog/json-what-it-is-how-it-works-how-to-use-it/
编辑:我忘了回答为什么不使用自己的功能的问题。当然你可以使用它,它的工作原理。但是很多服务都给你一个JSON。它就像一个标准。此外还有一个JavaClass。因此,您不必完成其他人已经完成的工作(参见:http://goo.gl/9X4HU)祝你好运
答案 2 :(得分:1)
不要手工完成,它是错误的,并且违反DRY(不要自己重复)。代替:
在Android上使用built in support for JSON或更好地使用知名且经过测试的库:GSON或Jackson。查看一些speed comparisons。或者,您可以使用Spring Android,它将网络+ JSON混合在一个易于使用的软件包中。
答案 3 :(得分:0)
我在Android中使用JSON,因为它是轻量级数据格式,我可以使用此google library轻松转换为Java对象。
您总是有两种可能性 - 使用某些库,或者自己编写代码。我并不是说使用库总是一种选择,但在许多情况下它可以节省您的时间并减少错误。由你来决定。