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);
        }
    }
    
  • 相关阅读:
    【算法笔记】一大堆的筛法
    #总结dvwa
    网页挂马,网页篡改
    博客换新啦(PS:https://npfs06.top)
    SSTI题目整理(未完)
    近期一些面试问题的整理(安全方向)
    漏洞复现(利用、SRC挖掘)合集(二)
    SRC漏洞-从零到1的历程记录
    PHP代码审计(Session反序列化 + Create_function漏洞)
    XSS+CSRF思考(BCTF2018
  • 原文地址:https://www.cnblogs.com/cj5785/p/10664694.html
Copyright © 2011-2022 走看看