JSON

lovesaxphone的专栏

字号+ 作者:H5之家 来源:H5之家 2015-10-20 13:55 我要评论( )

tag:HorizontalListView 横向listview 仿 优酷 播放列表由于优酷的客户端很酷,最近在做视频列表的时候客户要求做出类似效果,开始打算用Gallery的,不过后来发

1.JSON定义

       JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。

       JSON语法声明了一个对象,是一种用于传输和生成数据的协定

       对象:对象包含再{}之间
       属性:采用Key-Value对来表示。属性之间使用逗号分开。  string : value
       数组:数组存放再[]之间   [ elements ]
       元素:元素之间用逗号分开
       值:值可以是字符串,数字,对象,数组,true,false,null

2.JSON例子

       {

        "name":"andy",

        "people":{"name":"andy","age":"28"},

        "friend":["name":"value",

                      {"name":"value","age":"28"}

                     ]

        }

3.在服务器上解释 JSON

       处理 JSON 的两步骤:
       针对编写服务器端程序所用的语言,找到相应的 JSON 解析器/工具箱/帮助器 API。
       使用 JSON 解析器/工具箱/帮助器 API 取得来自客户机的请求数据并将数据转变成脚本能理解的东西

      

      我将介绍如何用 org.json 这个 Java API 在 Java 类上创建 toJSONObject() 方法。然后,就可以把 JSONObject 简单地序列化成 JSON。

      public JSONObject toJSONObject() {
              JSONObject json = new JSONObject();
              json.put("id",id);
              json.put("cost",getFormattedCost());
              json.put("date",date);
              JSONArray jsonItems = new JSONArray();
                 for (Iterator<Item> iter =
                              items.iterator() ; iter.hasNext() ; ) {
                                              jsonItems.put(iter.next().toJSONObject());
                               }
               json.put("items",jsonItems);
             return json;
    }

       可以看到,org.json API 非常简单。 JSONObject 代表 JavaScript 对象(即联合数组),有不同的 put() 方法,方法接受的 String 键和值是原生类型、String 类型或其他 JSON 类型。JSONArray 代表索引数组,所以它的 put() 方法只接受一个值。请注意在清单 8 中,创建 jsonItems 数组,然后再用 put() 把它附加到 json 对象上;可以用另外一种方法做这项工作,就是对每个项目调用 json.accumulate("items",iter.next().toJSONObject());。accumulate() 方法与 put() 类似,区别在于它把值添加到按照键进行识别的索引数组。

       清单 9 显示了如何序列化 JSONObject 并把它写入 servlet 响应。

       public void doGet(HttpServletRequest req, HttpServletResponse res)
                        throws java.io.IOException, ServletException {
               String custId = req.getParameter("username");
                Customer customer = getCustomer(custId);
  res.setContentType("application/x-json");
  res.getWriter().print(customer.toJSONObject());
      }

可以看到,它实际上什么也没有做。在这里隐式调用的 JSONObject 的 toString() 方法做了所有工作。请注意,application/x-json 内容类型还有一点不确定 —— 在编写这篇文章的时候,关于 JSON 应当属于什么 MIME 类型还没有定论。但是,目前 application/x-json 是合理的选择。


4.在客户端使用JSON

----通过 GET 以名称/值对发送 JSON

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 常见的java代码转换成json

    常见的java代码转换成json

    2016-01-27 17:01

  • xiaohui的专栏

    xiaohui的专栏

    2016-01-16 16:26

  • 聊聊前端和后台的数据交互与协议

    聊聊前端和后台的数据交互与协议

    2016-01-03 12:25

  • harryxlb的专栏

    harryxlb的专栏

    2015-11-16 15:56

网友点评