JSON使用与类型转换

  • JSON语法与对象
  • JSON方法与使用

 一、JSON语法与对象

JSON是英文JavaScript Object Notation(JavaScript 对象表示法)的缩写,是存储和交换文本信息的语法。类似XML,JSON比XML更小更快更简单。

JSON对象采用键值对的结构,所以在JS对象中Object和Array就是JSON对象,Array的索引作为键。但是在JSON的值不能是Function,如果JSON对象中存在Function在被转换成JSON文本的时候会删除该键值对。Date对象也不能以Date的对象形式存在JSON文本中,JSON对象在被转换成JSON文本时会被隐式进行String()转换操作。

正常情况下JSON的值可以是:字符串, 数字, 对象, 数组, 布尔值或 null。

----JSON对象与转换:

var arr = [1,"a",true,{o:"0"}];
console.log(JSON.stringify(arr));//'[1,"a",true,{"o":"0"}]'

 二、JSON方法与使用

  • JSON.parse(jsoStr)
  • JSON.stringify(jsoObj)

 浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8),所以需要兼容处理:

var jsoStr = '[1,"a",true,{"o":"0"}]'
var json1 = eval("(" + jsonStr + ")");
var json2 = (new Function("return " + jsonStr))();

eval()方法的应用就不具体描述了,相信大家都懂,我们直接来看json2的实现原理:

new Function()本质上就是用来实例化方法的构造函数,其参数以字符串的形式传入,会被解析为实例化方法的内部代码。所以在前面加上“return ”实质上就实现了JSON对象返回的语句,然后再通过立即执行函数实现了将JSON文本转换成JSON对象的效果。

(function anonymous() {
     return [1,"a",true,{"o":"0"}]
})

anonymous就是new Function()内部实例化的方法。

至于JSON.parse()的兼容方法根据我之前的类型转换博客封装就好了,主要注意function和Date对象的转换:类型和原生函数及类型转换(三:终结js类型转换)

 

posted @   他乡踏雪  阅读(1021)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示