JSON支持什么对象/类型?
当一个面试官问你: JSON都支持什么对象/类型?你怎么回答?
也许他的本意是下面这个答案:
JSON格式支持的数据类型有以下:
类型 | 描述 |
---|---|
Number | 在JavaScript中的双精度浮点格式 |
String | 双引号的反斜杠转义的Unicode |
Boolean | true 或 false |
Array | 值的有序序列 |
Value | 它可以是一个字符串,一个数字,真的还是假(true/false),空(null )等 |
Object | 无序集合键值对 |
Whitespace | 可以使用任何一对中的令牌 |
null | empty |
但我还真不这么认为,我认为支持任意对象类型,只要是接收容器里面存在的就可以。
可以使用下面的示例来证明:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <script src="../resources/js/jquery-1.8.3.min.js"></script> </head> <body></body> </html> <script>function ClassA(sColor) {this.color = sColor;this.sayColor = function() {alert(this.color);};}function strToJson(str) {var json = eval('(' + str + ')');return json;}jQuery.ajax({type : "get",cache : false,dataType : "text",url : "simple.json",success : function(data) {alert(data);var _json = strToJson(data);_json.testcolor.sayColor(); // 这里是我们想看的效果 },error : function() {alert('对不起,服务请求异常!');}}); </script>
simple.json文件内容:
{"retCode": "0000","retMsg": "Success","testcolor": new ClassA("red"),"retList": {"le1": {"price": "4800000","commId": "56761"},"le2": {"price": "4800000","commId": "56761"}} }
注意上面代码里面的 dataType : "text"
因为Jquery源码里面是用下面的方式转换的,我们需要更加原始的方式,所以我替换成了自定义的strToJson(str)
Jquery源码:
// Evaluates a script in a global context// Workarounds based on findings by Jim Driscoll// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-contextglobalEval: function( data ) {if ( data && core_rnotwhite.test( data ) ) {// We use execScript on Internet Explorer// We use an anonymous function so that context is window// rather than jQuery in Firefox( window.execScript || function( data ) {window[ "eval" ].call( window, data );} )( data );}},
其实JSON就是字符串,需要前端进行eval转换,所以不能简单的说json支持什么对象,或者支持什么数据类型。
注意提问方式,需要更加严谨提出我们想要提问的问题。
JSON支持什么对象/类型?相关推荐
- Java经典实例:进阶版堆栈实现,支持任何对象类型
支持任何对象类型,有更多的错误检查. package Stack;/*** Created by Frank*/ public class MyStack<T> implements Si ...
- SAP MASS批量更新(Mass Maintenance)工具对象类型介绍
SAP Mass是sap官方提供的一种批量维护工具 1.支持的对象类型(可批量修改的数据类型) 2.对象类型对应Tcode 1.支持的对象类型(可批量修改的数据类型) 运行Tcode:mass 可查看 ...
- java http 415错误_Java HTTP 415 JSON不支持的媒体类型错误
我正在用JSON请求调用REST服务,它给出了Http 415"不支持的媒体类型"错误. 请求内容类型设置为(" Content-Type"," ap ...
- java+web+415_使用json返回HTTP状态415的Web服务 - 不支持的媒体类型
我需要创建一个消费JSON数据的Web服务,我尝试了一些示例代码,并能够在他们的项目结构中创建它们并使用它. 但是,当我尝试在我的项目结构中创建相同的服务并请求Web服务时,它会响应HTTP状态415 ...
- jjson - 支持注释的 json 和 javascript 对象解析之 Python 模块
jjson - 支持注释的 json 和 javascript 对象解析模块 by Que's C++ Studio 代码请移步 github TedQue/jjson: python module ...
- json中的值类型及输出对象的所有名称和对应的值
json中的值类型共有8种,分别为nullValue, intValue,uintValue, realValue, stringValue,booleanValue, arrayValue, ojb ...
- json串与各种类型对象互转
一.对象 转 json串 1.实体 类 转 json串:String beanToJson = JSONObject.toJSONString(objectBean); 2.map 转 json串:S ...
- json字符串与对象互相转换
阿里巴巴fastJson Fastjson是一个Java语言编写的JSON处理器. 1.遵循http://json.org标准,为其官方网站收录的参考实现之一. 2.功能qiang打,支持JDK的各种 ...
- Qt中的JSON支持
Qt中的JSON支持 Qt中的JSON支持 概述 JSON类 Qt中的JSON支持 Qt提供了处理JSON数据的支持.JSON是一种对源自Javascript的对象数据进行编码的格式,但现在已广泛用作 ...
最新文章
- 【linux】Matchbox(二):基本概念
- Android编程 系统资源的介绍
- ubuntu 18.04无法开机 允许root用户桌面登录
- LeetCode:63. 不同路径 II
- 输出 100 万字、维护 3 个GitHub 项目,技术大佬的 2019 太燃了……
- php运行条件,PHP配置环境要求 php运行的先决条件
- mysql 备份脚本
- 查看oracle空间使用率,Oracle 查看表空间使用率
- sql server 触发器应用 insert
- java中h1.j有什么作用_Android JNI学习之javah命令的正确使用(找了好半天才找到的,汉,网上好多说法都没用)...
- Ansible详解(八)——Ansible palybook变量
- 英文的写作 —— 句子的积累
- scala中一些常见用法
- AllenNLP框架学习笔记(数据篇之二)
- (Struts)ActionForm类及表单数据验证
- SpringBoot请求第三方接口
- 微信公众号正式号网络授权域名操作
- 密室逃脱实体店怎么吸引客户?这几招教你实现线上引流转化!
- php手机页面中文输出乱码,如何解决php输出中文乱码的问题?
- iOS10全新方法实现推送+deviceToken无法获取或无效的解决
热门文章
- 数据库高可用架构(MySQL、Oracle、MongoDB、Redis)
- web前端3.0时代,“程序猿”如何“渡劫升仙”?
- 1 创建数据库连接对象 IDbConnection
- fdquery update
- C语言中的sizeof中的数组和指针
- 4.01~~Median
- HDU 2704 Bulletin Board
- OpenCVSharp_保存浮点型Mat数据
- 海康威视连续采图与单步采图_c#
- 出现运行时间错误_Excel VBA 运行错误,你知道为何突然出现错误的原因吗