>>分享Java编程技术,对《Java面向对象编程》等书籍提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 29666 个阅读者 刷新本主题
 * 贴子主题:  JSON基础与使用以及实例演示 回复文章 点赞(0)  收藏  
作者:日月光华    发表时间:2019-10-19 09:28:38     消息  查看  搜索  好友  邮件  复制  引用

JSON基础与使用以及实例演示


JSON基础与实例
                                                预计阅读时间:10分钟

下面我整理了一些基础性(JSON深入浅出)的问题,再一一解答这些问题。其次,在一些比较难以理解的地方,也有举例说明,希望能够帮到您!废话不多说,请看目录:
目录

JSON基础与实例
一、JSON是什么?
二、JSON用来做什么?
三、为什么要用JSON?
四、如何使用JSON?
(一) JSON基于两种结构
(二) JSON的形式
  1.对象(object)
  2.数组(array)
  3.值(value)
  4.字符串(string)
  5.数值(number)
  关于转换为 JS对象的问题
附加内容:
  AJAX获取JSON文件中的数据
    Item.json
    index.html


(概念整理自JSON官网:http://www.json.org.cn/)
一、JSON是什么?

JSON 是一种轻量级的数据交换格式。
二、JSON用来做什么?

JSON 是用于存储和传输数据的格式。
JSON 通常用于服务端向网页传递数据 。
三、为什么要用JSON?

容易阅读和编写。
方便机器解析和生成。
JSON采用独立于程序语言的文本格式,但是也使用了常用编程语言的习惯。这些特性使JSON成为理想的数据交换语言。
四、如何使用JSON?

(一) JSON基于两种结构
1.“名称/值”对的集合(A collection of name/value pairs)
不同的编程语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
2.值的有序列表(An ordered list of values)。
在大部分语言中,它被实现为数组(array),矢量(vector),列表(list),序列(sequence)。
这些都是常见的数据结构。目前,大部分编程语言都支持它们。这使得在各种编程语言之间交换同样格式的数据成为可能。
(二) JSON的形式
1.对象(object)
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。


实例:
<!DOCTYPE html>



<html>



<head>



<meta charset="utf-8">



<title>DJun(blog.csdn.net/qq_41647999)</title>



</head>



<body>



<p>



商品名称: <span id="goodsname"></span><br />



商品地址: <span id="goodsurl"></span><br />



公司 slogan: <span id="goodsslogan"></span>



</p>



<script>



var JSONObject= {



       "name":"大白菜",



       "url":"www.dreamstudio.top",



       "slogan":"热爱知识,传递技术!"



};



document.getElementById("goodsname ").innerHTML=JSONObject.name



// innerHTML在JS是双向功能:获取对象内容 或 向对象插入内容;



//在这是向id为goodsname的对象插入JSONObject.name内容



document.getElementById("goodsurl ").innerHTML=JSONObject.url



document.getElementById("goodsslogan ").innerHTML=JSONObject.slogan



</script>



</body>



</html>

2.数组(array)
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。


实例:


var JSONObject ={



"sites": [



{ "name":"菜鸟教程" , "url":"www.runoob.com" },



{ "name":"google" , "url":"www.google.com" },



{ "name":"微博" , "url":"www.weibo.com" }



]



}

网页实现调用的方式和上述实例相同。
3.值(value)
可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
4.字符串(string)
是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
JSON的字符串(string)与C或者Java的字符串非常相似。
下面介绍两个函数:
JSON.parse()
用于将一个 JSON 字符串转换为 JavaScript 对象。
JSON.stringify()
用于将 JavaScript 值转换为 JSON 字符串。

5.数值(number)
与C或者Java的数值非常相似。只是JSON的数值没有使用八进制与十六进制格式。同时,可以在任意标记之间添加空白。

关于转换为 JS对象的问题
使用内建的 JavaScript eval() 用方法进行解析JSON数据来生成原生的Javascript对象。
到这里,JSON的基本知识也就到这里结束了。如果您已经学习过AJAX的话,可以在看一下以下内容哦~

附加内容:
AJAX获取JSON文件中的数据
(实例来自:https://www.cnblogs.com/zhangyongl/p/6399955.html)


Item.json

[



  {



    "name":"张国立",



    "sex":"男",



    "email":"zhangguoli@123.com",



    "url":"./img/1.jpg"



  },



  {



    "name":"张铁林",



    "sex":"男",



    "email":"zhangtieli@123.com",



    "url":"./img/2.jpg"



  },



  {



    "name":"邓婕",



    "sex":"女",



    "email":"zhenjie@123.com",



    "url":"./img/3.jpg"



  },



  {



    "name":"张国立",



    "sex":"男",



    "email":"zhangguoli@123.com",



    "url":"./img/4.jpg"



  },



  {



    "name":"张铁林",



    "sex":"男",



    "email":"zhangtieli@123.com",



    "url":"./img/5.jpg"



  },



  {



    "name":"邓婕",



    "sex":"女",



    "email":"zhenjie@123.com",



    "url":"./img/6.jpg"



  }



]
index.html

<!DOCTYPE html>



<html>



<head>



    <meta charset="UTF-8">



    <title>Insert title here</title>



    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">



    <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>



    <style type="text/css">





        .p1{



            font-size: 14px;



            color: #000;



        }



        .p2{



            font-size: 12px;



            color: #b0b0b0;



        }



        .p3{



            font-size: 14px;



            color: #ff5f19;



        }



        .product{



            width:100%;



            position: relative;



            margin: 20px 0 5px 0;



            height: 100px;



            background: #fafafa;



        }





        .img{



            width: 100px;



            height: 100px;



            float: left;



            margin-right: 20px;



        }



        .p{



            display:inline-block;



            float:left;



            width:50%;



            margin-top:6px;



            font-family: Microsoft YaHei;



        }



        .p1{



            margin-top:16px;



        }









    </style>



    <script>



        //页面加载   获取全部信息



        $(function(){



            $.ajax({



                type: "POST",//请求方式



                url: "item.json",//地址,就是json文件的请求路径



                dataType: "json",//数据类型可以为 text xml json  script  jsonp



          success: function(result){//返回的参数就是 action里面所有的有get和set方法的参数



                    addBox(result);



                }



            });



            /*$.get("item.json",function(result){



                [color=#009933]//result数据添加到box容器中;



                addBox(result);



            });*/[/color]



        });



        function addBox(result){



            //result是一个集合,所以需要先遍历



            $.each(result,function(index,obj){



                $("#box").append("<div class='product'>"+//获得图片地址



                    "<div><img class='img' src="+obj['url']+"/></div>"+



                    //获得名字



                    "<div class='p1 p'>"+obj['name']+"</div>"+



                    //获得性别



                    "<div class='p2 p'>"+obj['sex']+"</div>"+



                    //获得邮箱地址



                    "<div class='p3 p'>"+obj['email']+"</div>"+



                    "</div>");



            });



        }



    </script>



</head>



<body>



<!-- 构建装一个容器 -->



<div id="box">



</div>



</body>



</html>

效果图:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

版权声明:本文遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文转自:https://blog.csdn.net/qq_41647999/article/details/82769761



程序猿的技术大观园:www.javathinker.net
  Java面向对象编程-->图形用户界面(上)
  JavaWeb开发-->开发JavaMail Web应用
  JSP与Hibernate开发-->通过JPA API检索数据
  Java网络编程-->RMI框架
  精通Spring-->CSS过渡和动画
  Vue3开发-->Vue组件开发高级技术
  面向对象的七大原则,你知道几个?
  购书咨询
  好消息:孙卫琴老师等直播分享Java分布式架构专题
  最实用的10个重构小技巧排行榜,你都用过哪些?
  Java并发之volatile关键字内存可见性问题
  超详细的Java运算符修炼手册(优秀程序员不得不知道的运算技...
  Java入门实用代码:获取远程文件大小
  Java 入门实用代码:设置文件只读
  Java入门实用代码:获取数组长度
  Java入门实用代码:字符串替换
  JAVA日期加减运算
  java Pattern和Matcher详解
  类加载中的双亲委派模型
  native2ascii.exe 的Java实现类
  Java Pattern和Matcher字符匹配详解
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。