Java中构造和解析JSON

什么是 Json?

  JSON(JvaScript Object Notation)(官网网站:http://www.json.org/)是 一种轻量级的数据交换格式。 
  易于人阅读和编写。同时也易于机器解析和生成。它基于 JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 的一个子集。 
  JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使 JSON 成为理想的数据交换语言。

JSON 的两种结构
 1.“名称/值”对的集合(A collection of name/value pairs)
  不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表 (hash table),有键列表(keyed list),或者关联数组 (associative array)。 
  在 Java 语言中,我们可以将它理解成 HashMap。
  对象是一个无序的"‘名称/值‘对"集合。一个对象以"{"(左括号)开始,"}"(右括号)结束。每个“名称”后跟一个":"(冒号);"‘名称/值‘ 对"之间使用","(逗号)分隔。
  示例:var json = {"name":"Jack","age":90,"Marray":true};

  

 2. 值的有序列表(An ordered list of values)
  在大部分语言中,它被理解为数组(Array 或 List)。
  数组是值(value)的有序集合。一个数组以"["(左中括号)开始,"]"(右中括号)结束。值之间使用","(逗号)分隔。
  示例:var json = ["Jack","Rose","Tom",89,true,false];

  

 Java中对json的操作的方式:org.json.jar

/**
     * 解析JSON
     */
    public static void ParsingJSon() {
        String json = "{\"resultcode\":\"200\",\"reason\":\"成功的返回\",\"result\":{\"GD\":{\"province\":\"广东\",\"province_code\":\"GD\",\"citys\":[{"
                + "\"city_name\":\"梅州\",\"city_code\":\"GD_MEIZHOU\",\"abbr\":\"粤\"},"
                + "{\"city_name\":\"汕尾\",\"city_code\":\"GD_SHANWEI\",\"abbr\":\"粤\"}]}},\"error_code\":0}";
        try {
            JSONObject jsonobject = new JSONObject(json);
            String resultcode = jsonobject.getString("resultcode");
            JSONObject jsonone = jsonobject.getJSONObject("result");
            JSONObject jsontwo = jsonone.getJSONObject("GD");
            JSONArray jsonarray = jsontwo.getJSONArray("citys");
            for (int i = 0; i < jsonarray.length(); i++) {
                JSONObject ject = jsonarray.getJSONObject(i);
                String s1 = ject.getString("city_name");
                String s2 = ject.getString("city_code");
                String s3 = ject.getString("abbr");
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
/**
     * 构造JSON
     */
    public static void ConstructingJSon() {
        JSONObject jsonFirst = new JSONObject();
        JSONObject jsonSecond = new JSONObject();
        JSONObject jsonThird = new JSONObject();
        try {
            JSONArray citys = new JSONArray();
            JSONObject cityone = new JSONObject();
            JSONObject citytwo = new JSONObject();
            cityone.put("city_name", "梅州");
            cityone.put("city_code", "GD_MEIZHOU");
            cityone.put("abbr", "粤");
            citytwo.put("city_name", "汕尾");
            citytwo.put("city_code", "GD_SHANWEI");
            citytwo.put("abbr", "粤");
            citys.put(cityone);
            citys.put(citytwo);
            jsonThird.put("province", "广东");
            jsonThird.put("province_code", "GD");
            jsonThird.put("citys", citys);
            jsonSecond.put("GD", jsonThird);
            jsonFirst.put("resultcode", "200");
            jsonFirst.put("reason", "成功的返回");
            jsonFirst.put("result", jsonSecond);
            jsonFirst.put("error_code", 0);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(jsonFirst.toString());
    }
时间: 2024-11-10 07:14:40

Java中构造和解析JSON的相关文章

Java构造和解析Json数据的两种方法详解一

原文链接:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html 在www.json.org上公布了很多Java下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 用org.son构造和解析Json数据的方法详解请参见我下一篇博文:Java构造和解析Json数据的两种方法详解二 一.介绍 JSO

Java构造和解析Json数据的两种方法详解二(转)

在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Json数据的方法示例. 一.介绍 org.json包是另一个用来beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www.json.org/上有详细讲解,有兴趣的可以去研究. 二.下载jar依赖包  

Java构造和解析Json数据的两种方法详解一(转)

在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www.json.org/上有详细讲解,有兴趣的可以去研究. 二.下载jar依赖包:可以去这

【转】Java构造和解析Json数据的两种方法详解一

Java构造和解析Json数据的两种方法详解一 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 用org.son构造和解析Json数据的方法详解请参见我下一篇博文:Java构造和解析Json数据的两种方法详解二 一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和J

Java构造和解析Json数据的两种方法详解二

三.基本方法介绍 由于org.json不能直接与bean进行转换,需要通过map进行中转,为了方便,我这里写了一个工具类JsonHelper,用于Json与Map.Bean的相互转换 package com.json; import java.lang.reflect.Method; import java.text.ParseException; import java.util.HashMap; import java.util.Iterator; import java.util.Map;

Java构造和解析Json数据的两种方法详解一——json-lib

转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 用org.son构造和解析Json数据的方法详解请参见我下一篇博文:Java构造和解析Json数据的两种方法详解二 一.介绍 JSON-

Java构造和解析Json数据的两种方法详解二——org.json

转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/24/3096437.html 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Json数据的方法示例.       用json-lib构造和解析Json数据的方法详解请参见我上一篇博文:Java构造和解析Json数据的两种方法详解一 一.介

Java中使用Jackson进行JSON解析和序列化

Java中使用Jackson进行JSON解析和序列化 1.添加依赖,在Maven的pom.xml文件中添加以下依赖 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.3</version> </dependency> 2.封装JSON解

Android中使用Gson解析JSON数据的两种方法

Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下 Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率. 从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词. 第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组