欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-04-02 10:27:16
最近公司开发的几个项目中,后台action向前端传递数据都是json格式,于是对jsonobject、jsonarray简单的研究了一下,废话不多说,想使用jsonobje...

最近公司开发的几个项目中,后台action向前端传递数据都是json格式,于是对jsonobject、jsonarray简单的研究了一下,废话不多说,想使用jsonobject、jsonarray,策则在项目中必须要有commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar  ezmorph.jar json-lib-2.2.2-jdk15.jar 这些jar包。

1.jsonobject与jsonarray使用的场景区别;

  1. 想通过键值对的形式获取数据,使用jsonobject。
  2. 如果后台查询的是某个bean的list集合向前端页面传递,使用jsonarray。

2. jsonobject与jsonarray使用方法区别;

 创建方法不同:

 jsonobject创建的方法:

    //创建jsonobject第一种方法
  jsonobject jsonobject = new jsonobject();
  jsonobject.put("username", "kobi");
  jsonobject.put("age", "34");
  jsonobject.put("workin", "ali");
  system.out.println("jsonobject1:" + jsonobject);

  //创建jsonobject第二种方法
  hashmap<string, string> hashmap = new hashmap<string, string>();
  hashmap.put("username", "zhuli");
  hashmap.put("age", "30");
  hashmap.put("workin", "ali");
  system.out.println("jsonobject2:" + jsonobject.fromobject(hashmap));

jsonarray创建的方法

    //创建一个jsonarray方法1
  jsonarray jsonarray = new jsonarray();
  jsonarray.add(0, "kobi");
  jsonarray.add(1, "34");
  jsonarray.add(2, "ali");
  system.out.println("jsonarray1:" + jsonarray);
  
  //创建jsonarray方法2
  arraylist<string> arraylist = new arraylist<string>();
  arraylist.add("kobi");
  arraylist.add("34");
  arraylist.add("ali");
  system.out.println("jsonarray2:" + jsonarray.fromobject(arraylist));

获取方式不同

  1. 获取jsonobject中值:string username = jsonobject.getstring("username");
  2. 获取jsonarray中的值:string username = arraylist.getstring("2");

示例

package com.yunos.tv.video.resource.controller.web;

import java.util.arraylist;
import java.util.hashmap;

import net.sf.json.jsonarray;
import net.sf.json.jsonobject;


public class test {

 public static void main(string[] args) {
  //jsonobject和jsonarray区别就是jsonobject是对象形式,jsonarray是数组形式
  //创建jsonobject第一种方法
  jsonobject jsonobject = new jsonobject();
  jsonobject.put("username", "zhuli");
  jsonobject.put("age", "30");
  jsonobject.put("workin", "ali");
  system.out.println("jsonobject1:" + jsonobject);
  
  //创建jsonobject第二种方法
  hashmap<string, string> hashmap = new hashmap<string, string>();
  hashmap.put("username", "zhuli");
  hashmap.put("age", "30");
  hashmap.put("workin", "ali");
  system.out.println("jsonobject2:" + jsonobject.fromobject(hashmap));
  
  //创建一个jsonarray方法1
  jsonarray jsonarray = new jsonarray();
  jsonarray.add(0, "zhuli");
  jsonarray.add(1, "30");
  jsonarray.add(2, "ali");
  system.out.println("jsonarray1:" + jsonarray);
  
  //创建jsonarray方法2
  arraylist<string> arraylist = new arraylist<string>();
  arraylist.add("zhuli");
  arraylist.add("30");
  arraylist.add("ali");
  system.out.println("jsonarray2:" + jsonarray.fromobject(arraylist));
  
  //如果jsonarray解析一个hashmap,则会将整个对象的放进一个数组的值中
  system.out.println("jsonarray from hashmap:" + jsonarray.fromobject(hashmap));
  
  //组装一个复杂的jsonarray
  jsonobject jsonobject2 = new jsonobject();
  jsonobject2.put("username", "zhuli");
  jsonobject2.put("age", "30");
  jsonobject2.put("workin", "ali");
  jsonobject2.element("array", arraylist);
  system.out.println("jsonobject2:" + jsonobject2);
    
 }
}

结果:

 jsonobject1:{"username":"zhuli","age":"30","workin":"ali"}
jsonobject2:{"workin":"ali","age":"30","username":"zhuli"}
jsonarray1:["zhuli","30","ali"]
jsonarray2:["zhuli","30","ali"]
jsonarray from hashmap:[{"workin":"ali","age":"30","username":"zhuli"}]
jsonobject2:{"username":"zhuli","age":"30","workin":"ali","array":["zhuli","30","ali"]}

3. 解析json字符串;

package com.yunos.tv.video.resource.controller.web;

import net.sf.json.jsonarray;
import net.sf.json.jsonobject;


public class test {

 public static void main(string[] args) {
  string jsonstring = "{\"username\":\"kobi\",\"age\":\"34\",\"workin\":\"ali\",\"array\":[\"kobi\",\"34\",\"ali\"]}";
  //将json字符串转为java对象
  jsonobject obj = jsonobject.fromobject(jsonstring);
  //获取object中的username
  if (obj.has("username")) {
   system.out.println("username:" + obj.getstring("username"));
  }
  //获取arrayobject
  if (obj.has("array")) {
   jsonarray transitlistarray = obj.getjsonarray("array");
   for (int i = 0; i < transitlistarray.size(); i++) {
    system.out.print("array:" + transitlistarray.getstring(i) + " ");
   }
  }
 }
}

返回值:

username:kobi
array:kobi array:34 array:ali

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。