`
wfsheep
  • 浏览: 17214 次
文章分类
社区版块
存档分类
最新评论

怎么去掉对象中的function类型元素--JSON对象学习

 
阅读更多

【问题】当一个对象中含有function,而想把它去掉的时候,怎么做简单呢?

【举例】

举个例子,当有一个对象为:

var  o = {
    a: 1,
    b: 'xx',
    c: function(){},
    d: true
}

我想把类型为o.c的对象去掉,应该怎么做呢~~

【解决方案】

一般的想法使用for-in循环,去掉type为function来做。其实有更简单的方法,那就是使用JSON.stringify(o),这样可以直接去掉function,再使用JSON.parse()将对象转换回来就好了,实例代码如下:

JSON.parse(JSON.stringify(o))
结果,大家可以自己试试。


【深入学习】

JSON对象:

对象检测:if(!window.JSON)

浏览器支持:IE:>=ie8标准模式支持,混杂模式和<ie8浏览器中不支持,主流现代浏览器支持

方法

1、JSON.stringify(value[, replacer,space]

@param {Object | Array} value 必须,要转换的 JavaScript 值(通常为对象或数组)。

@param {Function} replacer 可选,用于转换结果的函数或数组

@param {String | Number} space 可选,向返回值 JSON 文本添加缩进、空格和换行符以使其更易于读取

说明:

如果 value 具有 toJSON 方法,则 JSON.stringify 函数将使用该方法的返回值。

如果 toJSON 方法的返回值为 undefined,则不转换成员

这使对象能够确定自己的 J SON 表示形式。

将不会转换不具有 JSON 表示形式的值,例如 undefined。 在对象中,将丢弃这些值。 在数组中,会将这些值替换为 null。

执行顺序:

在序列化过程中,如果 value 参数对应有 toJSON 方法,则 JSON.stringify 将首先调用 toJSON 方法。

如果该方法不存在,则使用原始值。

接下来,如果提供 replacer 参数,则该值(原始值或 toJSON 返回值)将替换为 replacer 参数的返回值。

最后,根据可选 space 参数向该值添加空格以生成最终的 JS ON 文本。


2、JSON.parse(text[, receiver ])

@param {String} text jsonString

@param {Function} receiver 可选。 一个转换结果的函数。

将为对象的每个成员调用此函数。 如果成员包含嵌套对象,则先于父对象转换嵌套对象

对于每个成员,会发 生以下情况:

如果 reviver 返回一个有效值,则成员值将替换为转换后的值。

如果 reviver 返回它接收的相同值,则不修改成员值。

如果 reviver 返回 null 或 undefined,则删除成员。


不支持的替代方案

1、window.eval方法对jsonString进行解析,也就是代替json.parse方法

2、使用json2.js来进行转化


【参考资料】

http://msdn.microsoft.com/zh-cn/library/cc836458(v=vs.94).aspx

http://msdn.microsoft.com/zh-cn/library/cc836459(v=vs.94).aspx

http://msdn.microsoft.com/zh-cn/library/cc836466(v=vs.94).aspx


分享到:
评论

相关推荐

    prototype笔记(9)----结合Prototype和JSON开发AJAX

    在Prototype中,我们可以使用`Prototype.JSON.parse()`来解析JSON字符串为JavaScript对象,`Object.toJSON()`则将JavaScript对象转换成JSON字符串。在AJAX请求中,通常我们用JSON来传输服务器响应的数据,因为它比...

    json一键转换为易语言自定义数据类型1

    使用该算法,你需要提供完整的 JSON 对象作为输入,然后指定易语言中的顶级数据类型名称。算法将生成对应的易语言自定义数据类型源代码。你可以将生成的代码复制到你的易语言项目中,以便直接使用。 **4. 样例软件...

    新手学习JSON最佳资料

    - JSON对象可以视为Map集合的JSON表示,每个键值对对应Map中的一个键值对。 6. 解析和序列化: - 解析JSON(JSON.parse()):将JSON字符串转换为JavaScript对象。例如: ```javascript var jsonString = '{...

    uni-app、微信小程序 富文本内容利用html2json转换成对应类似控件 rich-text 对应的数组资源格式!

    遍历JSON对象,根据元素类型创建对应的数据结构。 ```javascript function processJson(json) { return json.children.map(child =&gt; { if (child.type === 'tag') { return { type: 'tag', name: child.tag,...

    java对象与json对象的转换

    在这个例子中,一个HashMap包含了各种类型的键值对(String, Boolean, Integer, String[], Function),转换后的JSON对象保留了这些键值对,并将函数以字符串形式存储。 3. **Bean转换** Bean对象转换涉及到Java类...

    一个页面实现Ajax效果的增删改查-JQuery+Json版.zip

    例如,一个简单的JSON对象可能如下所示: ```json { "id": 1, "name": "John Doe", "email": "john@example.com" } ``` 在jQuery中,我们可以使用$.parseJSON()(在新版本中已弃用,推荐使用$.getJSON()或直接...

    react-plexusform采用JSONSchema的react动态表单组件

    3. **定义JSON-Schema**:创建一个JSON对象,描述表单的结构和验证规则。 ```json const schema = { type: 'object', properties: { name: { type: 'string', title: '姓名' }, age: { type: 'integer', ...

    java对象与json对象的转换.pdf

    本文档将介绍Java中对象与JSON对象之间的转换技术。 #### JSON-lib库 JSON-lib是Java中一个处理JSON的工具库,它可以轻松地在Java Bean、Map、XML、JSON和JSON-bean之间进行转换。使用JSON-lib可以方便地将Java...

    json上解析对JSON对象前台获取

    在这个例子中,`#name`、`#age` 和 `#city` 是HTML元素的ID,它们的文本内容会被JSON对象中的相应值替换。 ### 总结 JSON对象是前端与后端交互的常用方式,jQuery提供了一系列便利的方法来处理JSON数据。通过理解...

    asp.net生成json对象,jquery读取

    在ASP.NET中生成JSON对象并使用jQuery进行读取是Web开发中的常见操作,尤其是在构建AJAX驱动的应用程序时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...

    echarts-mapJson-master2018.zip

    在ECharts-mapJson-master资源包中,"全国地图echarts-mapJson-master"目录下,很可能包含了中国各个省份、城市、甚至区县的JSON文件,每个文件对应一个行政区域,数据结构严谨,便于ECharts解析和渲染。 使用...

    JSON教程doc文档

    通过本教程的学习,我们不仅掌握了 JSON 的基本概念和语法结构,还深入了解了如何在 JavaScript 中使用 JSON。无论是进行 Web 开发还是处理配置文件,掌握 JSON 都是一项非常重要的技能。希望本教程能帮助大家更好地...

    ajax + json 练习

    - **发送JSON数据**:在Ajax POST请求中,可以将JSON对象转换为字符串,通过`JSON.stringify()`方法,然后将其作为请求体发送。 4. **示例代码**: ```javascript var xhr = new XMLHttpRequest(); xhr.open('...

    java对象List,Map转json格式

    8. **标签解析**: 关于“max”标签,可能是指在处理大量数据时,需要考虑JSON对象大小限制。Java和JavaScript都有最大内存限制,因此在转化大型集合时需注意避免内存溢出。可以通过分批处理或使用流式处理来优化。 ...

    Java中使用Json的net.sf.json包

    这个包提供了方便的API,使得Java程序员可以轻松地进行JSON对象的创建、解析和转换。 `net.sf.json`是开源项目json-lib的一部分,它提供了一系列的类和方法来处理JSON数据。主要的两个核心类是JSONObject和...

    json 填充 form

    4. **匹配并填充数据**:使用jQuery的`each()`方法遍历表单元素,并查找与JSON对象中键相匹配的元素。如果找到匹配项,就将JSON数据的值填充到相应的表单字段中。例如: ```javascript $('form').find('input, ...

    json-lib.rar

    除了`JSONObject`,`json-lib`还提供了`JSONArray`类来处理JSON数组,以及`JSONFunction`来表示JSON中的函数。这些类提供了丰富的操作方法,如添加元素、获取值、遍历等,极大地简化了JSON数据的处理工作。 此外,`...

    Struts2.1.6中关于JSON的配置和使用

    - 使用`$.post`方法向服务器发起POST请求,其中第一个参数为请求的URL,第二个参数为发送给服务器的数据(此处为JSON对象),第三个参数为回调函数,用来处理服务器返回的数据。 - 在回调函数中,首先使用`window....

    json字符串递归解析

    JSON格式通常由键值对组成,键用引号括起来,值可以是字符串、数字、布尔值、数组、null或另一个JSON对象。 在处理JSON数据时,我们经常需要对JSON字符串进行解析,将其转化为JavaScript对象以便进一步操作。当JSON...

    Json-RPC_for_Java使用说明

    - **List**:`java.util.List`转化为数组,允许访问元素和调用列表中对象的方法。 - **Null**:表示为JavaScript的`null`。 - **其他Java对象**:通用的Java对象转化为JavaScript对象,支持属性访问和方法调用。 ##...

Global site tag (gtag.js) - Google Analytics