Java解析(读取)Json数据

以前看过书上说,XML是web service间传输信息的标准格式吧,就看了看XML。最近在做个网站,又说是有了JSON,第一回听说就看了看,总结总结一下。

1.JSON介绍

  JSON比XML简单,主要体现在传输相同信息的情况下,文件的大小不同

  JSON只用于传输信息,XML还可以用于配置文件的使用。

  JSON中的符号主要有: " , [ {:

2.JSON中的数组和对象

  2.1数组(JSONArray

  数组用一对[],表示存放的是一般的数组数据。

  如:["11","22","33"],表示这是一个JSONArray数组,里面有3个数据:”11“,”22“,”33“。当然可以是复杂的数据,就是所谓的嵌套定义吧。

  2.对象(JSONObject

  对象用一对{},来表示其中JSON通用的”键-值“对。

  如:{"sex1":"female","name0":"zhangsan"},表示的是一个JSON对象,里面有两组数据(键值对),sex1=female,name0=zhangsan。当然这里键对应的数据值,可以是复杂的JSON对象或者数组。

3.代码示例

3.1基本的JSONArray与JSONObject操作

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class ObjectAndArray1 {
    public static void main(String args[])
    {
        JSONObject jsonObj  = new JSONObject();
        jsonObj.put("name0", "zhangsan");
        jsonObj.put("sex1", "female");
        System.out.println(jsonObj);    //输出为:{"sex1":"female","name0":"zhangsan"}

        JSONArray jsonArray = new JSONArray();
        jsonArray.add("11");
        jsonArray.add("22");
        jsonArray.add("33");
        System.out.println(jsonArray);    //输出为:["11","22","33"]
    }
}

3.2由java自带的数据结构转换为JSON文本

import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class ObjectAndArray2{
    public static void main(String args[])
    {
        //可以由数组,列表等生成JSONArray
        String list[]={"11","22"};
        JSONArray jsonarray = JSONArray.fromObject(list);
        jsonarray.add("33");
        System.out.println(jsonarray);    //输出为:["11","22","33"]

        //可以由Map生成JSONObject
        Map<String,Object> map=new HashMap<String,Object>();
        map.put("NO1", "第一个");
        map.put("NO2", "第二个");
        map.put("NO3", jsonarray);
        JSONObject jsonObj  = JSONObject.fromObject(map);
        System.out.println(jsonObj);    //输出为:{"NO3":["11","22","33"],"NO2":"第二个","NO1":"第一个"}
    }
}

3.3读取JSON文本

JSONArray必须用下标读取内部数据。
JSONObject必须用”键“读取对应的”值“。
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class ObjectAndArray {
    public static void main(String args[])
    {
        JSONArray jsonarray;
        JSONObject jsonObj;
        //读取JSONArray,用下标索引获取
        String array="[\"11\",\"22\",\"33\"]";
        jsonarray = JSONArray.fromObject(array);
        System.out.println(jsonarray.getString(1));    //输出为:22

        //读取JSONObject
        String object="{\"NO1\":[\"44\",\"55\",\"66\"],\"NO2\":{\"NO1\":\"第一个\"}}";
        jsonObj  = JSONObject.fromObject(object);
        System.out.println(jsonObj.get("NO1"));    //输出为:["44","55","66"]

        jsonarray = (JSONArray)(jsonObj.get("NO1"));
        System.out.println(jsonarray.getString(1));    //输出为:55

        //用"键"获取值
        jsonObj=(JSONObject)jsonObj.get("NO2");
        System.out.println(jsonObj);    //输出为:{"NO1":"第一个"}

    }
}

4.总结

  JSON就是一种数据的组织形式,可以说是XML的简化版本,只用于数据传输。

时间: 2024-09-20 15:57:10

Java解析(读取)Json数据的相关文章

java 解析html格式数据转json

问题描述 java 解析html格式数据转json status_line: HTTP/1.1 200 OK, content: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> Error Error Error This page can't be displ

java-jackson1.7.6读取json数据求大牛补充下代码

问题描述 jackson1.7.6读取json数据求大牛补充下代码 package per.sww.eleven_five; public class Glossary { private String title; private GlossDiv GlossDiv; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public Gloss

json-在AngularJS中怎么实现读取JSON数据后,根据同一店铺名称下循环购买的商品

问题描述 在AngularJS中怎么实现读取JSON数据后,根据同一店铺名称下循环购买的商品 菜鸟一枚,大神勿嫌弃. 我在做购物车的模拟,在service中手写了一组json数组对象, var goods = [{ id:1, sstype:"企业商城", image_file:"img/cartImg/c8.jpg", name:"舒语17 18 19寸沃森CVT沃尔沃日产轮毂原装正品啦啦啦啦", shangpinpingpai:"沃

web项目前端读取json数据不正常 ?

问题描述 web项目前端读取json数据不正常 ? 后台代码 @Override public String execute() throws Exception { Object obj=this.session.get(StaticString.ADMIN_INFO); Map<String, Object> map=new HashMap<String, Object>(); if(obj!=null){ AdminBean newAdmin =new AdminBean(t

服务器-Java web返回JSON数据的封装问题

问题描述 Java web返回JSON数据的封装问题 我的服务器端返回JSON数据的格式是统一的,封装成JSONResponse这个类,其中data字段类型 为BaseModel,这是所有实体类的基类,但如果要返回一个对象的List而不是单个对象, 这种方式就不行了,请问如果还用一个字段,兼容List和单个对象两种情况,该怎么写? 谢谢 解决方案 Java Web返回JSONjava 返回json数据jQuery通过调用webservice返回json数据的问题 解决方案二: 全部都用List去

easyui-JqueryEasyUI datagrid 获取不了Struts.xml解析的JSON数据

问题描述 JqueryEasyUI datagrid 获取不了Struts.xml解析的JSON数据 resultList [{total=10, rows=[{code=150302000009, name=葡萄, id=60, pzid=50, cydw=宾川金玉果品有限责任公司, cd=敖汝龙, cydate=2015-03-02, nr=, statue=已检测, addtime=2015-03-02 15:35:09.0}, {code=141125000008, name=葡萄, i

java多线程 读取队列数据,减少耦合性怎么做?

问题描述 java多线程 读取队列数据,减少耦合性怎么做? 本人不太擅长多线程,但最近因为工作需要,使用到了,所以来求助了,需求这样的:要固定创建线程池跑线程,同时访问数据进来了后加入队列,线程去读取队列后处理程序,这样使访问数据和线程耦合性降低,彼此减少影响.这个代码怎么写,谁能给个demo,知道的别写个大概,写详细点,谢谢了.(我原来是来一个访问就new一个线程处理,老大说这样不好,就提了这样的要求) 解决方案 建议楼主使用反射试试 解决方案二: 我觉得反射应该可以解决这个问题,可是反射不怎

jquery ajax 读取json数据存入表格中

问题描述 jquery ajax 读取json数据存入表格中 test.txt的json数据如下[{""XH"":1YWName"":""业务1""SName"":""系统1""QDName"":""渠道1""HJNumber"":5}{""XH&q

Python读取JSON数据,并解决字符集不匹配问题

今天来谈一谈Python解析JSON数据,并写入到本地文件的一个小例子. – 思路如下 从一个返回JSON天气数据的网站获取到目标JSON数据串 使用Python解析出需要的部分 写入到本地文件,供其他的应用程序读取 完成整个业务需求 原料 一个可以获得天气信息的URL网址,如天气信息接口 读取到的结果:(由于是浏览器显示的时候的编码与之不匹配,故出现了乱码,但这并不影响我们对数据的处理) {"weatherinfo":{"city":"鍖椾含"