JSON学习大全(详解)

一、对象和list集合转为json格式

1.创建User实体类

2导入jar包

3转换

1.创建User实体类
public class User {

    private  int id;
    private  String name;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }

    public User() {
    }

    public User(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

 

2导入jar包

 

3转换
import com.java.po.User;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

public class JsonTest01 {
    public static void main(String[] args) {

        //现在是一个对象,但是我们要把对象转为json格式
        User user1=new User(1,"张三1");

        /**
         *
         * 1.导入jar包
         * 2.把对象转为json格式
         *
         * */

        System.out.println(user1);

        //转Json格式
        JSONObject userJson= JSONObject.fromObject(user1);
        System.out.println(userJson);//{"id":1,"name":"张三"}这就是Json格式




        //集合
        User user2=new User(2,"张三2");
        User user3=new User(3,"张三3");
        List<User> list = new ArrayList<>();
        list.add(user1);
        list.add(user2);
        list.add(user3);

        //把集合转为json格式
        JSONArray listJson= JSONArray.fromObject(list);
        System.out.println(listJson);//[{"id":1,"name":"张三1"},{"id":2,"name":"张三2"},{"id":3,"name":"张三3"}]
        //这样就转成了JSON格式



    }
}

 

 

效果图

 

二、页面上获取json数据,在浏览器中控制台里面查看

1.编写jsp文件

 


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>JSON</title>
    <script>
        //json定义基本格式    json都是键值对的
        //var userJson={"":""};  //一个
        //{"":"","":""}//两个
        //{"":"","":"","":""}//三个
        var userJson={"id":"1","name":"张三1"};
        //需要获取json中的值
        console.log(userJson.id)//通过键获取值
        console.log(userJson.name)
        console.log(userJson["name"])



        //返回数组
        // [{"id":1,"name":"张三1"},{"id":2,"name":"张三2"},{"id":3,"name":"张三3"}]
       // var ListJson=[{}];    //一个
       // var ListJson=[{},{}]; //两个
        //例子数组循环
        /*       var nums=[1,2,3];
               for (var key in nums){
                   console.log(nums)
               }*/
        var ListJson=[{"id":1,"name":"张三1"},{"id":2,"name":"张三2"},{"id":3,"name":"张三3"}];

        for (var key in ListJson){
            console.log(ListJson[key])
        }




    </script>
</head>
<body>

</body>
</html>

 

 

三、循环输出

 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script>
        //基本键值对循环
        var userJson={"id":"1","name":"张三1"};
        for (var  key in userJson){
           // console.log(key)//循环得到所有的键
            console.log(userJson[key])//循环得到所有的值
        }



        
        //循环数组
        var ListJson=[{"id":1,"name":"张三1"},{"id":2,"name":"张三2"},{"id":3,"name":"张三3"}];
        for (var key in ListJson){
            console.log(key)//循环得到所有的下标  0,1,2
            var user2= ListJson[key]//循环得到所有的值
            for (var  key in user2){
                // console.log(key)//循环得到所有的键
                console.log(user2[key])//循环得到所有的值
            }
        }
    </script>
</head>
<body>
</body>
</html>

 

json和String的类型转换

    <script>
        var userJson={"id":"1","name":"张三1"};
        console.log(typeof userJson);//返回的是Object  是json格式




    //加了单引号        这个代码其实是json格式数据,在外层加了'' 变成了字符串
         var userStr='{"id":"1","name":"张三1"}';
        console.log(typeof userStr);//返回的是String
        //把json格式的字符串转换为json格式
         var strToJson=JSON.parse(userStr);
        console.log(typeof strToJson);//Object  转换成功为JSON格式


         //把json格式转为字符串
        var jsonToStr=JSON.stringify(strToJson);
        console.log(typeof jsonToStr);//String  转换成功为字符串

    </script>

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值