Mat*_*epa 39
这就是我的工作,它就像一个魅力
if (typeof JSON.clone !== "function") {
JSON.clone = function(obj) {
return JSON.parse(JSON.stringify(obj));
};
}
Run Code Online (Sandbox Code Playgroud)
小智 25
做就是了
var x = {} //some json object here
var y = JSON.parse(JSON.stringify(x)); //new json object here
Run Code Online (Sandbox Code Playgroud)
Sha*_*moo 16
截至ES6.Object.assign是一种很好的方法.
newjsonobj = Object.assign({}, jsonobj, {})
Run Code Online (Sandbox Code Playgroud)
第一个参数中的项目改变现有对象,第三个参数是返回的新对象中的更改.
在ES7中,建议使用扩展运算符.
newjsonobj = {...jsonobj}
Run Code Online (Sandbox Code Playgroud)
如何在javascript/jquery中创建JSON对象?
没有像JSON 对象那样的东西.JSON代表JavaScript Object Notation,基本上是一个字符串,它编码类似于JavaScript的对象文字的信息.
但是,您可以创建这样的编码(这将产生一个字符串)JSON.stringify(object),请参阅JavaScript中的JSON.您也可以手动创建这样的字符串,但它非常容易出错,我不推荐它.
如何在javascript/jquery中克隆JSON对象?
因为它只是一个字符串:
var jsonString2 = jsonString;
Run Code Online (Sandbox Code Playgroud)
我不能再使用javascript数组了
JSON是一种交换数据的格式,它不是可以在应用程序中使用的数据结构.
Q1:如何在javascript/jquery中创建JSON对象?
创建一个Javascript对象非常简单:
var user = {}; // creates an empty user object
var user = {firstName:"John", lastName:"Doe"}; // creates a user by initializing
// its firstName and lastName properties.
Run Code Online (Sandbox Code Playgroud)
创建后,您可以为对象添加额外的字段user.age = 30;.
如果您将对象作为JSON字符串,则可以使用内置JSON.parse(yourJsonString)函数或jQuery $.parseJSON(yourJsonString)函数将其转换为JSON对象.
Q2:如何在javascript/jquery中克隆JSON对象?
我克隆JSON对象的方法是jQuery的扩展函数.例如,您可以生成用户对象的克隆,如下所示:
var cloneUser = $.extend(true, {}, {firstName:"John", lastName:"Doe"});
Run Code Online (Sandbox Code Playgroud)
第一个参数指定克隆对象是原始的浅表还是深表(请参阅wiki上的对象副本).
要查看其他JSON克隆的替代品,你可以阅读该文章.
这是我在解析JSON并在代码中多次重用它时经常遇到的问题.并且您希望避免每次从原始JSON字符串重新解析,或者serialize/parse采用效率较低的方式.
因此,在您希望调整已解析对象但仍保持原始未更改的这些情况下,请在服务器(NodeJ)或客户端JavaScript代码中使用以下函数.jQuery clone函数的效率较低,因为它们处理函数,regexp等的情况.下面的函数只处理JSON支持的类型(null,undefined,number,string,array和object):
function cloneJSON(obj) {
// basic type deep copy
if (obj === null || obj === undefined || typeof obj !== 'object') {
return obj
}
// array deep copy
if (obj instanceof Array) {
var cloneA = [];
for (var i = 0; i < obj.length; ++i) {
cloneA[i] = cloneJSON(obj[i]);
}
return cloneA;
}
// object deep copy
var cloneO = {};
for (var i in obj) {
cloneO[i] = cloneJSON(obj[i]);
}
return cloneO;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70558 次 |
| 最近记录: |