• 开发android客户端需要了解的知识--JSON数据解析


    什么是JSON:

    JSON即JavaScript Object Natation, 它是一种轻量级的数据交换格式, 与XML一样, 是广泛被采用的客户端和服务端交互的解决方案.

    JSON对象: JSON中对象(Object)以"{"开始, 以"}"结束. 对象中的每一个item都是一个key-value对, 表现为"key:value"的形式, key-value对之间使用逗号分隔. 如:{"name":"coolxing", "age"=24, "male":true, "address":{"street":"huiLongGuan", "city":"beijing", "country":"china"}}. JSON对象的key只能是string类型的, 而value可以是string, number, false, true, null, Object对象甚至是array数组, 也就是说可以存在嵌套的情况.

    JSON数组: JSON数组(array)以"["开始, 以"]"结束, 数组中的每一个元素可以是string, number, false, true, null, Object对象甚至是array数组, 数组间的元素使用逗号分隔. 如["coolxing", 24, {"street":"huiLongGuan", "city":"beijing", "country":"china"}].

    JSON数据的解析:解析JSON数据, 首先需要明确待解析的是JSON Object还是JSON array, 然后需要确定采用哪种解析技术. android平台上一般有2种解析技术可供选择: android内置的org.json包和google的开源gson库. 以下将分别采用这两种技术解析JSON对象和JSON数组.

    1.  采用android内置的org.json包解析JSON对象. 假设待解析的JSON数据为json = "{"name":"coolxing", "age"=24, "male":true, "address":{"street":"huiLongGuan", "city":"beijing", "country":"china"}}", 其中用于转义表达式中的双引号. 首先定义2个JavaBean:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    de >public class Address {de>

    de >    de>de >private String street;de>

    de >    de>de >private String city;de>

    de >    de>de >private String country;de>

    de >    de>de >public Address() {de>

    de >        de>de >superde>de >();de>

    de >    de>de >}de>

    de >    de>de >public Address(String street, String city, String country) {de>

    de >        de>de >superde>de >();de>

    de >        de>de >thisde>de >.street = street;de>

    de >        de>de >thisde>de >.city = city;de>

    de >        de>de >thisde>de >.country = country;de>

    de >    de>de >}de>

    de >    de>de >public String getStreet() {de>

    de >        de>de >returnde> de >street;de>

    de >    de>de >}de>

    de >    de>de >public void setStreet(String street) {de>

    de >        de>de >thisde>de >.street = street;de>

    .relpost{clear:both}

    Tag:

    Freenovo 发表于2014-05-24 13:41:00 | 编辑 | 分享 0

    引用地址:

  • 相关阅读:
    PHP抓取网络数据的6种常见方法
    Linux scp 使用详解
    php.ini的配置
    VS2013中,将Qt的GUI程序改为控制台程序
    Matlab 摄像机标定+畸变校正
    Camera 3D概念
    旋转矩阵
    #pragma pack()用法详解
    【Boost】boost库获取格式化时间
    C/C++读写csv文件
  • 原文地址:https://www.cnblogs.com/freenovo/p/4469779.html
Copyright © 2020-2023  润新知