原文: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支持什么对象/类型?相关推荐

  1. Java经典实例:进阶版堆栈实现,支持任何对象类型

    支持任何对象类型,有更多的错误检查. package Stack;/*** Created by Frank*/ public class MyStack<T> implements Si ...

  2. SAP MASS批量更新(Mass Maintenance)工具对象类型介绍

    SAP Mass是sap官方提供的一种批量维护工具 1.支持的对象类型(可批量修改的数据类型) 2.对象类型对应Tcode 1.支持的对象类型(可批量修改的数据类型) 运行Tcode:mass 可查看 ...

  3. java http 415错误_Java HTTP 415 JSON不支持的媒体类型错误

    我正在用JSON请求调用REST服务,它给出了Http 415"不支持的媒体类型"错误. 请求内容类型设置为(" Content-Type"," ap ...

  4. java+web+415_使用json返回HTTP状态415的Web服务 - 不支持的媒体类型

    我需要创建一个消费JSON数据的Web服务,我尝试了一些示例代码,并能够在他们的项目结构中创建它们并使用它. 但是,当我尝试在我的项目结构中创建相同的服务并请求Web服务时,它会响应HTTP状态415 ...

  5. jjson - 支持注释的 json 和 javascript 对象解析之 Python 模块

    jjson - 支持注释的 json 和 javascript 对象解析模块 by Que's C++ Studio 代码请移步 github TedQue/jjson: python module ...

  6. json中的值类型及输出对象的所有名称和对应的值

    json中的值类型共有8种,分别为nullValue, intValue,uintValue, realValue, stringValue,booleanValue, arrayValue, ojb ...

  7. json串与各种类型对象互转

    一.对象 转 json串 1.实体 类 转 json串:String beanToJson = JSONObject.toJSONString(objectBean); 2.map 转 json串:S ...

  8. json字符串与对象互相转换

    阿里巴巴fastJson Fastjson是一个Java语言编写的JSON处理器. 1.遵循http://json.org标准,为其官方网站收录的参考实现之一. 2.功能qiang打,支持JDK的各种 ...

  9. Qt中的JSON支持

    Qt中的JSON支持 Qt中的JSON支持 概述 JSON类 Qt中的JSON支持 Qt提供了处理JSON数据的支持.JSON是一种对源自Javascript的对象数据进行编码的格式,但现在已广泛用作 ...

最新文章

  1. 【linux】Matchbox(二):基本概念
  2. Android编程 系统资源的介绍
  3. ubuntu 18.04无法开机 允许root用户桌面登录
  4. LeetCode:63. 不同路径 II
  5. 输出 100 万字、维护 3 个GitHub 项目,技术大佬的 2019 太燃了……
  6. php运行条件,PHP配置环境要求 php运行的先决条件
  7. mysql 备份脚本
  8. 查看oracle空间使用率,Oracle 查看表空间使用率
  9. sql server 触发器应用 insert
  10. java中h1.j有什么作用_Android JNI学习之javah命令的正确使用(找了好半天才找到的,汉,网上好多说法都没用)...
  11. Ansible详解(八)——Ansible palybook变量
  12. 英文的写作 —— 句子的积累
  13. scala中一些常见用法
  14. AllenNLP框架学习笔记(数据篇之二)
  15. (Struts)ActionForm类及表单数据验证
  16. SpringBoot请求第三方接口
  17. 微信公众号正式号网络授权域名操作
  18. 密室逃脱实体店怎么吸引客户?这几招教你实现线上引流转化!
  19. php手机页面中文输出乱码,如何解决php输出中文乱码的问题?
  20. iOS10全新方法实现推送+deviceToken无法获取或无效的解决

热门文章

  1. 数据库高可用架构(MySQL、Oracle、MongoDB、Redis)
  2. web前端3.0时代,“程序猿”如何“渡劫升仙”?
  3. 1 创建数据库连接对象 IDbConnection
  4. fdquery update
  5. C语言中的sizeof中的数组和指针
  6. 4.01~~Median
  7. HDU 2704 Bulletin Board
  8. OpenCVSharp_保存浮点型Mat数据
  9. 海康威视连续采图与单步采图_c#
  10. 出现运行时间错误_Excel VBA 运行错误,你知道为何突然出现错误的原因吗