zoukankan      html  css  js  c++  java
  • json解析

    json数据是常见的一种互联网传输数据格式,这里记录了json解析的通用方法

    JSON(JavaScript Object Notation)JavaScript对象表示法

    一种简单的数据格式,比xml更轻巧。JSON是JavaScript的原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包

    JSON的规则

    • 映射用冒号(":")表示。名称:值
    • 并列的数据名称之间用逗号(",")分隔。名称1:值1,名称2:值2
    • 映射的集合(对象)用大括号("{}")表示。{名称1:值1,名称2:值2}
    • 并列数据的集合(数组)用方括号("[]")表示
    [
        {名称1:值1,名称2:值2},
        {名称1:值1,名称2:值2}
    ]
    
    • 元素值可具有类型:string,number,object,array,true,false,null

    JSON的两种格式

    JSON对象的格式

    写法:{JSON数据名称1:JSON数据的值1,JSON数据名称2:JSON数据的值2...}

    {"name":"zhangsan","age":"20","addr":"nanjing"}
    

    JSON数组的格式

    写法:[JSON对象1,JSON对象2...]

    [{"name":"lucy","age":20},{"name":"mary","age":30}]
    

    JSON的解析

    有很多的JSON开源框架,例如org.json,json-lib,gson等。常用org.json
    官网:http://www.json.org/java/
    常见API:(将json字符串转化成JSONObject对象)

    • JSONObject jb = new JSONObject(String source)
    • Object get(String key)
    • Int getInt(String key)
    • String getString(String key)
    • XXX getXXX(String key)
    • JSONArray getJsonArray(String key)

    将json字符串转出JSONArray对象

    JSONArray jsArray = new JSONArray(String source)
    

    JSON解析示例

    public void jsonTest() throws Exception{
        String jstring = "{'name':'zhangsan','age':'20'}";
        //通过一个具有json格式的字符串就可以创建一个json对象
        JSONObject obj = new JSONObject(jstring );
        //获取到json对象以后就可以通过key去取值,根据需求选择相关的getXXX方法
        //可以获取的数据类型有:string,int,long,double,boolean,object
        String name = obj.getString("name");
        int age = obj.getInt("age");
        System.out.println("name:"+name+",age:"+age);
    
        String jsonArray = "[{'name':'zhangsan','age':'20'},{'name':'lisi','age':'30'}]";
        //根据一个具有json数组格式的字符串,创建一个json数组对象
        JSONArray array = new JSONArray(jsonArray);
        for (int i = 0; i < array.length(); i++) {
            //根据索引取出每一个jsonobject
            JSONObject jsonObject = array.getJSONObject(i);
            name = jsonObject.getString("name");
            System.out.println(name);
        }
    }
    
  • 相关阅读:
    15. DML, DDL, LOGON 触发器
    5. 跟踪标记 (Trace Flag) 834, 845 对内存页行为的影响
    4. 跟踪标记 (Trace Flag) 610 对索引组织表(IOT)最小化日志
    14. 类似正则表达式的字符处理问题
    01. SELECT显示和PRINT打印超长的字符
    3. 跟踪标记 (Trace Flag) 1204, 1222 抓取死锁信息
    2. 跟踪标记 (Trace Flag) 3604, 3605 输出DBCC命令结果
    1. 跟踪标记 (Trace Flag) 1117, 1118 文件增长及空间分配方式
    0. 跟踪标记 (Trace Flag) 简介
    SpringBoot + Redis + Shiro 实现权限管理(转)
  • 原文地址:https://www.cnblogs.com/cj5785/p/10664694.html
Copyright © 2011-2022 走看看