json在js和java中的使用

在编程语言中,只要有了数组(array)和对象(object)就能够储存一切数据,同时在不同的语言之间进行数据交换的时候,倾向于使用字符串,因为字符串在各个语言中的处理方式大致相同,那么JSON的诞生也就在情理之中了。

JSON的优势在于:

(1).JSON是纯文本格式,是独立于语言和平台的。

(2).生成和解析相对于XML而言要简单。

(3).读写的速度更快。

json的格式:

1.{}包裹,里面必须是键值对,键是string类型,值可以为任意类型

'{"class":"二年一班","students":[{"name":"小王","age":"18","gender":"male"},{"name":"小红","age":"16","gender":"female"}],"array":[20,21,22]}'

2.[]包裹,里面是数组,可以是{}包裹的对象数组,也可以是字符串,数字组成的数组,但里面的类型最好是一样的,不然后台接收时不好解析

'[{"name":"小王","age":"18","gender":"male"},{"name":"小红","age":"16","gender":"female"}]';
'[10,20,30]'

js拼接json

有时前台给后台传数据,会使用json格式,这就需要前台将json生成好

{}中要用键值法放入数据,[]中用push放数据

var obj={};
obj.className="二年一班";
obj.studentsNum=5;
var students = [];
for(var i=0;i<5;i++){
    var student={};
    student.name="小王"+i;
    student.age=15+i;
    students.push(student)
}
obj.students=students;
var jsonstr=JSON.stringify(obj)
console.log(jsonstr)

生成的json字符串为:

{"className":"二年一班","studentsNum":5,"students":[{"name":"小王0","age":15},{"name":"小王1","age":16},{"name":"小王2","age":17},{"name":"小王3","age":18},{"name":"小王4","age":19}]}

注意,虽然js中数组有个叫关联数组的,里面也可以用键值对方法放入数据,但在json中不建议使用,如:

var a=[];
a.name=10;
a.push("b")
console.log(a)

生成这个东西

这会导致json格式混乱。

总结:{}中要用键值法放入数据,键为字符串,值可以任意格式,[]中用push放数据,可以是对象数组,也可以使字符串、数字数组,但数组里的数据类型最好要统一

js中json字符换和对象的转换

1.字符串转对象

用JSON.parse(string)

var jsonstr='[{"name":"小王","age":"18","gender":"male"},{"name":"小红","age":"16","gender":"female"}]';
var jsonobj=JSON.parse(jsonstr);
console.log(jsonobj)

2.对象转字符串

用JSON.stringify(obj)

var jsonstr1='{"class":"二年一班","students":[{"name":"小王","age":"18","gender":"male"},{"name":"小红","age":"16","gender":"female"}],"array":[20,21,22]}'
var jsonobj1=JSON.parse(jsonstr1);
var jsonstr2=JSON.stringify(jsonobj1)

java中生成json

后台将数据传给前台,使用最多的格式就是使用json

一般使用map返回,map中插入查询结果,最后使用JSON.toJSONString(map)生成json

@ResponseBody
@RequestMapping(value = "getOrderPartsNum", produces = "text/plain;charset=UTF-8")
public String getOrderPartsNum(@RequestParam Map<String, String> params) {
    Map<String,Object> result=new HashMap<String,Object>();
    List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
    try {
        list = statisticsManagerService.getOrderPartsList(params);
        result.put("data",list);
        result.put("msg","查询成功");
        result.put("code","1")
    } catch (Exception e) {
        e.printStackTrace();
        result.put("msg","查询失败");
        result.put("code","0")
    }
    return JSON.toJSONString(result);
}

java解析json字符串生成map

如果json是{}包裹的对象,则转成Map<String,Object>格式

Map<String,Object>  obj = JSONObject.parseObject(json,Map.class);

如果json是[]包裹的数据,则转成list集合,集合的类型根据数据类型而定

List<Map>  punishList=JSONObject.parseArray(json,Map.class);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆趣编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值