文档章节

json

金珂王子
 金珂王子
发布于 2015/10/09 22:04
字数 1253
阅读 5
收藏 0

摘要            在目前的B/S开发模式下,使用json对象来作为前端和后台传递复杂数据是一个明智的选择,下面就说一下后台java如何使用json对象,以及如何在在前和后台之间传递json对象。          

                json                 java中使用json                 json和字符串转换                 json和对象转换                 java中如何使用json                  

 


                     

目录[-]

   

               

  1.java 中使用json

1.1 导入jar包

如果想在后台java代码中使用json,首先就必须导入json.jar ,json。jar可以去官网上下载,也可以去我的网盘中下载,我的网盘地址为:http://pan.baidu.com/s/1pJKDu11 。

1.2 在java程序中导入类引用

首先将下载好的jar包复制进你的项目中的lib文件夹(一般在webContent-->WEB-INF下,没有就自己新建一个)下,根据 不同的开发环境不同,可能有的开发环境只需要将jar包复制进去即可,有的复制进去以后还要选定这个jar包,然后右键,builder Path --> Add Builder Path;

然后在你想使用json对象的java程序中引入下面的类:

1
2
3
import  org.json.JSONArray;
import  org.json.JSONException;
import  org.json.JSONObject;

1.3 使用json

通过上面的两个步骤,json就可以在java程序中使用了,使用方法如下:

1.3.1将json格式的string字符串转为json对象

如果想把字符串转化为json对象,首先就要求这个字符串是符合json格式的,json格式可以去网上学习一下,这里不细说,

下面就直接上例子:

1
2
3
4
5
6
7
8
String str =  "{\"name\":\"caocao\",\"age\":\"32\"}" ;
         try  {
             JSONObject jsonObj =  new  JSONObject(str);
             System.out.println(jsonObj.getString( "name" ));
         catch  (Exception e) {
             System.out.println(e.getMessage());
             e.printStackTrace();
         }

通过上面的一段代码,我们就可以将str字符串转为json对象,并且成功的打印除了转化后的json对象中的name属性的值,这个适合于简单的json数据。

1.3.2将对象转换为json对象
1
2
3
4
5
6
7
Map<String ,String> params =   new  HashMap();
      
      params.put( "name" "caocao" );
      params.put( "age" "30" );
      //声明JSONArray对象并输入JSON字符串
      JSONArray array = JSONArray.fromObject(params);
      Systemout.println(array.toString());

通过上面的代码,就可以将一个对象转化为json数组,这个json数组可以用来在向前端传送数据。

1.3.3从json对象中获取json对象值

这个适合于比较复杂的json数据,比如如下代码

1
2
3
String jsonStr =  "{\"name\": \"caocao\",\"age\": \"30\",\"identity\": {\"home\": \"father\",\"chief\": \"chief\"}, \"childrens\": [\"caopi\", \"caozhi\", \"caochong\"]}" ;
         JSONObject jsonObj =  new  JSONObject(jsonStr);
         JSONObject config = jsonObj.getJSONObject( "identity" );

这样就可以以json对象形式获取json中某个属性下值仍旧包含属性和值的情况,然后再接着进行其他操作。

1.3.4 从json对象中获取json数组
1
2
3
4
JSONArray childrens= jsonObj.getJSONArray( "childrens" );
         for  ( int  index =  0 , length = childrens.length(); index < length; index++) {
              Systemout.println(childrens[i]);
         }

1.3.5将json对象转为string字符串
1
2
3
4
5
6
7
8
9
10
11
12
  //创建JSONObject对象
JSONObject json =  new  JSONObject();
  //向json中添加数据
json.put( "name" "caocao" );
json.put( "age" 30 );
json.put( "height" 167 );
//创建JSONArray数组,并将json添加到数组
JSONArray array =  new  JSONArray();
array.put(json);        
//转换为字符串
String jsonStr = array.toString();
System.out.println(jsonStr);

1.3.6将集合转为json对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public  static  void  main(String[] args) throws  JSONException{
         //初始化ArrayList集合并添加数据
         List<String> list =  new  ArrayList<String>();
         list.add( "name" );
         list.add( "age" );
         list.add( "sex" );
         
         //初始化HashMap集合并添加数组
         Map map =  new  HashMap();
         map.put( "name" "caocao" );
         map.put( "age" 30 );
         
         //初始化JSONArray对象,并添加数据
         JSONArray array =  new  JSONArray();
         array.put(list);
         array.put(map);
         
         //生成的JSON字符串为:[["name","age","sex"],{"name":69,"age":"30"}]
     }

2.在前端代码中使用json

在前端中使用json必须在页面中添加json.js文件,同样我把这个文件放在我的云盘中,大家可以前去下载:http://pan.baidu.com/s/1c0fInYw ,将此文件复制进webContent下合适(自己决定即可)的文件夹内,然后再网页文件里添加如下引用:

1
< script  src = "json/json2.js"  type = "text/javascript" ></ script >

注意:上面的src内的内容和你吧这个文件放入哪个文件夹有关,要把对应的这个json.js文件的路径写对才可以。

通过上面的步骤,就可以在页面js函数中使用json对象了。

1
2
3
4
5
6
7
//@description: 根据接收到的JSON字符串来解析字符串中所包含的数据和数据对象
 
//接收到的JSON字符串
var  result =  "[{\"name\": \"coacao\", \"identity\": {\"home\": \"father\", \"army" : \ "chief\"}}]" ;
var  dataJson = eval( "("  + result+  ")" );
alert(dataJson.name);
//弹出的对话框为: caocao


本文转载自:

金珂王子
粉丝 0
博文 15
码字总数 0
作品 0
朝阳
私信 提问

暂无文章

parseint和isNaN用法

本文转载于:专业的前端网站➭parseint和isNaN用法 <!doctype html><html><head><meta charset="utf-8"><title>无标题文档</title></head><body><script> var a='12'; alert......

前端老手
9分钟前
1
0
Kylin 精确去重在用户行为分析中的妙用

作者:史少锋,Apache Kylin committer & PMC,2019/10/11 在上次文章《如何在 1 秒内做到大数据精准去重》中,我们介绍了 Apache Kylin 为什么要支持大数据集上的精确去重,以及基于 Bitmap...

ApacheKylin
20分钟前
1
0
学习记录(二) es6基本语法(rest参数,模板化,axios模块,拦截器)

日常学习记录 模块化:把一个大文件分成多个小文件,按照一定规范进行拼接 es5写法: 导出:module.exports = 数据 导入:require("路径") /路径未添加后缀名时 //默认添加.js //把路径作为文件名...

Pole丶逐
23分钟前
1
0
以程序员的角度怎么购买一台「性价比高的电视」

前俩天有小伙伴在我的文章下留言,说能否把 【国内电视机都介绍一下】,今天我已在TV端开发多年的程序员的角度。谈谈已程序员的角度如何购买一台性价比高的电视。 国内大的电视机品牌介绍 长...

我们都很努力着
27分钟前
1
0
PhotoShop 色调:理解直方图/RGB通道信息

一、直方图:图表的形式,展示图像像素分布的情况 1.平均值:表示平均亮度 2.标准偏差值:表示亮度值范围内的中间值 3.像素: 表示用于计算直方图的像素总数 4.色阶:显示指针下面的区域亮度...

东方墨天
32分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部