JSON前后端处理

JSON简介

  • JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于前后端数据传输和存储中
  • JSON 就是一种字符串格式,这种格式无论是在前端还是在后端,都可以很容易的转换成对象,所以常用于前后端数据传递

JSON格式

  • JSON由键值对组成,使用大括号 {} 表示对象,每个键值对由键(key)和值(value)组成,键和值之间用冒号 : 分隔,键值对之间用逗号 , 分隔
  • 值可以是字符串、数字、布尔值(true或false)、对象、数组或null。字符串需要使用双引号 " 括起来,例如 “name”: “John”

示例:

{
  "name": "John",
  "age": 30,
  "isStudent": false,
  "address": {
    "street": "123 Main St",
    "city": "New York"
  },
  "hobbies": ["reading", "coding", "traveling"]
}

JSON在客户端的使用(JS中JSON语法)

  • JSON的语法

    ​ var obj=“{‘属性名’:‘属性值’,‘属性名’:{‘属性名’:‘属性值’},‘属性名’:[‘值1’,‘值1’,‘值3’]}”

  • 可以看出,JSON数据被" "包裹起来,所以JSON本质是一个字符串

  • JSON字符串一般用于传递数据,所以字符串中的函数就显得没有意义,在此不做研究

  • 通过JSON.parse()方法可以将一个JSON串转换成对象

  • 通过JSON.stringify()方法可以将一个对象转换成一个JSON格式的字符串

/* 定义一个JSON串 */
var personStr ='{"name":"张小明","age":20,"girlFriend":{"name":"铁铃","age":23},"foods":["苹果","香蕉","橘子","葡萄"],"pets":[{"petName":"大黄","petType":"dog"},{"petName":"小花","petType":"cat"}]}'
console.log(personStr)
console.log(typeof personStr)
/* 将一个JSON串转换为对象 */
var person =JSON.parse(personStr);
console.log(person)
console.log(typeof person)
/* 获取对象属性值 */
console.log(person.name)
console.log(person.age)
console.log(person.girlFriend.name)
console.log(person.foods[1])
console.log(person.pets[1].petName)
console.log(person.pets[1].petType)
/* 定义一个对象 */
var person={
    'name':'张小明',
    'age':20,
    'girlFriend':{
        'name':'铁铃',
        'age':23
    },
    'foods':['苹果','香蕉','橘子','葡萄'],
    'pets':[
        {
            'petName':'大黄',
            'petType':'dog'
        },
        {
            'petName':'小花',
            'petType':'cat'
        }
    ]
}

/* 获取对象属性值 */
console.log(person.name)
console.log(person.age)
console.log(person.girlFriend.name)
console.log(person.foods[1])
console.log(person.pets[1].petName)
console.log(person.pets[1].petType)
/* 将对象转换成JSON字符串 */
var personStr =JSON.stringify(person)
console.log(personStr)
console.log(typeof personStr)

JSON在服务器端的使用

  • 应用反射技术

  • 在Java代码中使用JSON通常涉及以下几个方面:生成JSON、解析JSON、与客户端交互和处理JSON数据

  • 使用Java中的第三方库(如Jackson、Gson等)可以方便地将Java对象转换为JSON格式的字符串和将JSON字符串解析为Java对象

例如,使用Jackson库可以这样生成JSON:

ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(myObject);
  • myObject是要转换成json格式的对象

例如,使用Jackson库可以这样解析JSON:

ObjectMapper objectMapper = new ObjectMapper();
MyObject myObject = objectMapper.readValue(json, MyObject.class);
  • json是符合MyObject类对象格式的json字符串,MyObject.class利用反射获取MyObject类对象

JSON和Map List Array之间的转换问题

Map

JSON转换为Map:

  • 使用Jackson库或其他JSON解析库,可以将JSON字符串解析为Map对象
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Map;

public class Main {
    public static void main(String[] args) throws Exception {
        String json = "{\"name\": \"John\", \"age\": 30}";
        ObjectMapper objectMapper = new ObjectMapper();
        Map<String, Object> map = objectMapper.readValue(json, Map.class);
        System.out.println(map.get("name"));  // Output: John
        System.out.println(map.get("age"));   // Output: 30
    }
}

Map转换为JSON:

  • 同样使用Jackson库或其他JSON库,可以将Map对象转换为JSON字符串
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) throws Exception {
        Map<String, Object> map = new HashMap<>();
        map.put("name", "John");
        map.put("age", 30);
        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writeValueAsString(map);
        System.out.println(json);  // Output: {"name":"John","age":30}
    }
}

List或Array

JSON转换为List或Array:

  • 如果JSON字符串表示的是数组,可以将其转换为Java的List或Array
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;

public class JsonToListExample {
    public static void main(String[] args) throws Exception {
        String json = "[\"apple\", \"banana\", \"cherry\"]";
        ObjectMapper objectMapper = new ObjectMapper();
        List<String> list = objectMapper.readValue(json, List.class);
        System.out.println(list);  // Output: [apple, banana, cherry]
    }
}

List或Array转换为JSON:

  • 使用JSON解析库,可以将Java的List或Array转换为JSON字符串
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Arrays;
import java.util.List;

public class ListToJsonExample {
    public static void main(String[] args) throws Exception {
        List<String> list = Arrays.asList("apple", "banana", "cherry");
        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writeValueAsString(list);
        System.out.println(json);  // Output: ["apple","banana","cherry"]
    }
}

总结

在这里插入图片描述

  • 25
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

木木彡、

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

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

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

打赏作者

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

抵扣说明:

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

余额充值