0

我认为最好理解为什么我有这么多问题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我可以使用这些数据创建一个没有库和类的其他简单“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? 我的选择或示例也是如此。但是用我自己的语法..

谢谢你的帮助

4

4 回答 4

3

JSON 是一种标准格式,它的实现使其易于使用——不需要 split() 和其他东西。此外,所有类型的编程语言(如您自己的示例中的 Python 和 Java)都支持它,因此它提供了一种在完全不同的系统之间交换数据的简单方法。它经过深思熟虑,例如还可以处理带有“:”或“;”的问题 在里面。您建议的解决方案将失败的情况。

于 2013-04-26T06:53:23.060 回答
1

我不确定 JSON,但已经有一个解释 JSON 的线程(谷歌知道一切)。也许你可以在这里找到一些帮助:

什么是 JSON,我为什么要使用它?

http://www.copterlabs.com/blog/json-what-it-is-how-it-works-how-to-use-it/

编辑:我忘了回答为什么不使用您自己的功能的问题。当然,您可以使用它并且它可以工作。但是很多服务都会给你一个 JSON。它就像一个标准。此外还有一个JavaClass。所以你不必做别人已经做过的工作(见:http: //goo.gl/9X4HU

此致

于 2013-04-26T06:25:54.567 回答
1

不要手工做,它是错误优先的并且违反了 DRY(不要重复自己)。反而:

  1. 在服务器上使用自动生成 JSON 的 REST 框架。例如RESTEasy。在网上搜索示例

  2. 在 Android 上使用内置对 JSON 的支持,或者更好地使用知名且经过测试的库:GSONJackson。查看一些速度比较。或者,您可以使用Spring Android,它将网络 + JSON 混合在一个易于使用的包中。

于 2013-04-26T09:49:22.040 回答
0

我在 Android 中使用 JSON,因为它是轻量级数据格式,我可以使用这个google 库轻松地将其转换为 Java 对象。

你总是有两种可能性——使用一些库,或者自己编写代码。我并不是说使用该库始终是一种选择,但在许多情况下,它可以节省您的时间并减少错误。由您决定。

于 2013-04-26T09:01:50.583 回答