`
leiyinsu
  • 浏览: 31055 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JSONObject和JSONArray的JSON操作

阅读更多

           JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。在一次项目中用到页面返回数据处理。

          1、引入 json.jar 包;

 

          2、JSONObject 对象使用;

               首先创建 JSONObject 对象,使用 put 方法给对象添加元素。

 

package JSON;

import net.sf.json.JSONArray;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;

public class JSONObjectSampl {
	
	private static JSONObject createJSONObject(){
		JSONObject jsonObj = new JSONObject();
		try {
			jsonObj.put("id", "1");
			jsonObj.put("name", "sam");
			jsonObj.put("email", "sam@sina.com");
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return jsonObj;
	}
	
	public static void main(String[] args) {
		//静态方法,直接通过类名.方法名调用
		JSONObject jsonObj = JSONObjectSampl.createJSONObject(); 
		
		System.out.println("jsonObj:"+jsonObj);
		
		//判断输出对象类型
		boolean isArray = jsonObj.isArray();
		boolean isEmpty = jsonObj.isEmpty();
		boolean isNullObject = jsonObj.isNullObject();
		
		System.out.println("isArray:" + isArray + "\tisEmpty:" + isEmpty + "\tisNullObject:" + isNullObject);
		
		//添加属性,继续在 jsonObj 后面追加元素
		jsonObj.element("address", "广东深圳");
		System.out.println("添加后的属性元素:"+jsonObj);
		
		//返回 jsonArray 对象
		JSONArray jsonArray = new JSONArray();
		
		jsonArray.add(0, "this is a jsonArray value");
		jsonArray.add(1,"another jsonArray value");
		jsonObj.element("jsonArray", jsonArray);
		//获取jsonArray 
		JSONArray array = jsonObj.getJSONArray("jsonArray");
		
		System.out.println("jsonObj"+jsonObj);
		System.out.println("返回一个jsonArray 对象"+array);
	
		//根据key 返回一个字符串
		String name = jsonObj.getString("name");
		System.out.println("name"+name);
		
		//把字符转换为 JSONObj
		String temp = jsonObj.toString();
		JSONObject object = JSONObject.fromObject(temp);
		System.out.println("temp:"+object.get("address"));
	}
}

 

 

           3、JSONArrayList 对象使用

                 使用 element 方法保存对象

 

package JSON;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JSONTest {
	public static void main(String[] agrs){
		JSONObject jsonObj0 = new JSONObject();
		JSONObject jsonObj1 = new JSONObject();
		JSONObject jsonObj2 = new JSONObject();
		JSONObject jsonObj3 = new JSONObject();
		JSONArray jsonArray = new JSONArray();
		
		jsonObj0.put("name0", "张三");
		jsonObj0.put("sex0", "female0");
		System.out.println("jsonObj0:\t"+jsonObj0);
		
		jsonObj1.put("nam1", "李四");
		jsonObj1.put("sex1", "male1");
		System.out.println("jsonObj1:\t"+jsonObj1);
		
		jsonObj2.put("item0", jsonObj0);
		jsonObj2.put("item1", jsonObj1);
		System.out.println("jsonObj2:\t"+jsonObj2);
		
		jsonObj3.element("jsonObj3", jsonObj2);
		System.out.println("jsonObj3:\t"+jsonObj3);
		
        //往JSONArray中添加JSONObject对象。发现JSONArray跟JSONObject的区别就是JSONArray比JSONObject多中括号[]
        jsonArray.add(jsonObj1);
        System.out.println("jsonArray:"+jsonArray);
        
        JSONObject jsonObj4  = new JSONObject();
        jsonObj4.element("weather", jsonArray);
        System.out.println("jsonObj4:"+jsonObj4);
	}
}

 

 

           4、HTML页面处理

                var dataObj=eval("("+data+")");//转换为json对象.

                为什么要 eval这里要添加 “("("+data+")");//”呢?

                原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块                 来处理,所以必须强制性的将它转换成一种表达式。

                加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式                                   (expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{                 },如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}                   将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:

 

                     alert(eval("{}"); // return undefined

                     alert(eval("({})");// return object[Object]

 

           5、http://json-lib.sourceforge.net/apidocs/jdk15/index.html

   

           6、 JSON.JAR 下载地址 

                 http://download.csdn.net/detail/leiyinsu/7064451

分享到:
评论

相关推荐

    JSONObject、JSONArray需要的jar包

    下面是如何创建和操作JSONArray的例子: ```java import org.json.JSONArray; JSONArray arr = new JSONArray(); arr.put("Apple"); arr.put("Banana"); arr.put("Orange"); ``` 在Java项目中使用JSONObject和...

    JSONObject与JSONArray使用中所需要的完全jar包

    转json格式所需的jar包,供Java开发所需,包括commons-beanutils.jar、commons-collections-3.1.jar、commons-lang.jar、commons-logging.jar、ezmorph-1.0.6.jar、json-lib-2.2.2-jdk15.jar

    JSONLIB之JSONObject与JSONArray的使用

    JSONLIB是一个Java库,它提供了对JSON的解析、生成和操作的支持。在这个主题中,我们将深入探讨JSONLIB中的两个核心类:JSONObject和JSONArray。 JSONObject是JSONLIB中的一个关键类,代表了JSON规范中的一个对象,...

    解析json的工具类,包括JSONObject、JSONArray、JSONException、JSONString等

    这个库提供了几个核心类,如JSONObject、JSONArray、JSONException和JSONString,帮助开发者方便地进行JSON的解析、创建和序列化。 **JSONObject**: JSONObject是表示JSON对象的类,它由键值对组成,键总是字符串...

    JSON字符串转换JSONObject和JSONArray的方法

    一.下载json 具体到http://www.json.org/上找Java-json下载,并把其放到项目源代码中,这样就可以引用其类对象了 ...JSONObject myJsonObject = new JSONObject(jsonMessage); //获取对应的值 value1 = myJsonObject.g

    【jsonObject和jsonArray】需要的jar包

    在Java中,你可以使用`JSONObject`来创建、解析和操作这样的对象。`JSONObject`类提供了丰富的API,如`get()`用于获取键对应的值,`put()`用于添加或更新键值对,以及`toString()`将对象转换为JSON字符串等。 `...

    JSONObject和JSONArray使用手册.pdf

    5. 遍历和操作JSON对象的方法。 6. Java的List接口,特别是ArrayList的使用,包括添加、遍历和删除元素。 7. Java集合框架中的Iterator接口及其在遍历List时的应用。 这些知识点对于理解和处理JSON数据以及在Java...

    JSONObject和JSONArray对象的创建方法

    总之,`JSONObject`和`JSONArray`是处理JSON数据的基本工具,通过它们,我们可以方便地在Java程序中创建、解析和操作JSON结构。理解其创建方法和常用API,能有效提升JSON数据处理的效率。在实际项目中,结合使用合适...

    jsonObject, jsonArray所需的包.

    jsonObject, jsonArray所需的6个jar包 json-lib-2.4-jdk15.jar; ezmorph-1.0.6.jar; commons-logging-1.1.1.jar; commons-lang-2.4.jar; commons-collections-3.2.1.jar; commons-beanutils-1.8.3.jar;

    JSONObject与JSONArray所需jar包

    在Java编程环境中,当我们处理JSON数据时,经常会用到`JSONObject`和`JSONArray`这两个类。它们是来自开源项目json.org的JSON库的一部分,提供了方便的API来操作JSON格式的数据。JSON(JavaScript Object Notation)...

    kesho,存储缓存任何数据类型字符串、布尔值、jsonobject、jsonarray….zip

    Kesho是一个开源的存储缓存库,它的设计目标是提供一个高效且灵活的框架,用于存储和缓存各种类型的数据,包括字符串、布尔值、JSON对象以及JSON数组等。在现代应用开发中,数据管理是一个至关重要的环节,Kesho的...

    JSONObject与JSONArray使用中所需要的完全jar包整理

    JSONObject与JSONArray使用中所需要的完全jar包整理、需要依赖的包:commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar ezmorph.jar json-lib-2.2.2-jdk15.jar...

    JSONObject与JSONArray的使用.pdf

    总结来说,`JSONObject`和`JSONArray`是JSON-Lib库中处理JSON数据的主要工具,它们帮助开发者在Java程序中方便地创建、操作和解析JSON对象。通过`put()`、`get()`等方法,可以轻松地进行键值对的添加、读取和删除...

    JSONObject和JSONArray使用手册.docx

    在Java中,我们通常使用`org.json`库来处理JSON数据,其中包含`JSONObject`和`JSONArray`两个主要类。 ### JSONObject `JSONObject`用于表示一个键值对的数据结构,类似于Java中的HashMap。在给定的示例中,创建了...

    JsonObject 与JsonArray 使用时的相关最新jar包(用于java 解析json)

    4. **使用示例**: 创建和操作`JsonObject`和`JsonArray`的实例,通常涉及到解析JSON字符串、获取/设置属性值、遍历数组等操作: ```java // 创建JsonObject并添加属性 JsonObject obj = new JsonObject(); obj.add...

    Java中JSONObject与JSONArray的使用区别详解

    JSON提供两种基本结构:JSONObject和JSONArray。理解它们的使用区别对于有效地处理JSON数据至关重要。 **1. 使用场景的区别** **JSONObject** 主要用于表示一个键值对的数据结构,就像Java中的HashMap或Dictionary...

    详解JSONObject和JSONArray区别及基本用法

    在Java环境中处理JSON数据时,常用的工具有JSONObject和JSONArray,它们是JSON处理库中的两个基本概念,它们在数据结构和用途上存在一些区别。本文将深入探讨JSONObject和JSONArray的区别和基本用法。 一、...

    浅析Java中JSONObject和JSONArray使用

    在Java中,我们可以通过多种方式来处理JSON数据,本文重点探讨了JSONObject和JSONArray这两种对象的使用方法。 首先,让我们了解一下JSONObject。JSONObject是一个以键值对形式存储数据的集合,它本质上是一个Map,...

    Volley使用,包含get、post请求,获取String/JsonObject/JsonArray数据(android客户端+java服务器端)

    Volley是Google推出的一款高效的Android网络请求库,它旨在简化Android应用中的网络操作,通过减少网络请求的延迟和提高响应速度来提升用户体验。本教程将详细介绍如何使用Volley进行HTTP的GET和POST请求,以及如何...

Global site tag (gtag.js) - Google Analytics