嵌套对象上的 JSON.stringify 忽略嵌套对象

     2023-03-05     266

关键词:

【中文标题】嵌套对象上的 JSON.stringify 忽略嵌套对象【英文标题】:JSON.stringify on nested object ignores nested objects 【发布时间】:2014-05-06 13:21:25 【问题描述】:

我正在生成一个对象,当您使用 Chrome 检查它时,它看起来像这样:

当我尝试使用 JSON.stringify 对该对象进行字符串化时,我得到以下结果:


    "results" : [
            "ID" : 1,
            "NAME" : "Admin"
        , 
            "ID" : 2,
            "NAME" : "Standarduser"
        , 
            "ID" : 3,
            "NAME" : "Consultant"
        , 
            "ID" : 4,
            "NAME" : "Leergruppe"
        
    ]

由于某种原因,所有嵌套节点都丢失了。 我敢肯定这非常简单和明显,但目前我根本找不到我的错误。 非常感谢您的帮助!

编辑:JSFiddle 如何创建 JSON:http://jsfiddle.net/VJTaV/

【问题讨论】:

你是如何构建这个对象的?我创建了相同的对象,JSON.stringify 工作正常:jsfiddle.net/H8CF2 嗨 Rocket,我已经编辑了我的问题并在 jsfiddle 上创建了一个条目。它不可运行,但我想这足以了解它是如何创建的。 【参考方案1】:

由于你的 jsfiddle 显示了一个 ajax 调用,你很可能调用了JSON.stringify()before the ajax results are available。您需要将其放入成功回调中,以便在 ajax 完成后执行。

Chrome 检查器将显示属性,因为当您在记录对象后对其进行修改时,您稍后可以展开并查看在调用 console.log 时尚不存在的新属性。

【讨论】:

谢谢,这当然是原因。现在我已将 .get 调用更改为 .ajax 调用并使其同步。【参考方案2】:

正如 Bergi 所说,您正在尝试对尚未加载的数据进行字符串化,因为 $.get 调用是异步的。您可以将 .done 回调附加到它们中的每一个,或者,如果您只想在 all 请求完成时执行代码,请使用 jQuery.when :

var jqXHRs = [];

$( data.results ).each(function( key, val ) 
  var jqXHR = $.get( userDataUrl, "", function( res ) 
    // ...
  );

  jqXHRs.push(jqXHR);
);

$.when.apply( $, jqXHRs ).done(function() 
    console.log( val ); // will log all nested nodes
);

【讨论】:

非常感谢您的输入,但有一个问题:您写道,我可以将 .done 附加到每个请求 - 但此时我看不出使用成功回调的区别。 成功回调是老API,现在推荐使用.done,但是效果还是一样的。

JSON.stringify 忽略一些对象成员

】JSON.stringify忽略一些对象成员【英文标题】:JSON.stringifyignoresomeobjectmembers【发布时间】:2011-11-1806:12:04【问题描述】:这是一个简单的例子。functionPerson()this.name="Ted";this.age=5;persons[0]=newPerson();persons[1]=newPerson();JSON.stringify(persons 查看详情

如何 JSON.stringify 嵌套的对象数组 [关闭]

】如何JSON.stringify嵌套的对象数组[关闭]【英文标题】:HowtoJSON.stringifyannestedarrayofobjects[closed]【发布时间】:2020-07-1907:12:57【问题描述】:这是我的数据,data="SeatingArrangement":["data":["id":1,"rowName":"a","seatNo":0,"id":2,"rowName":"a","seatNo": 查看详情

为啥 TypeError 上的 JSON.stringify 返回一个空对象 [重复]

】为啥TypeError上的JSON.stringify返回一个空对象[重复]【英文标题】:WhydoesJSON.stringifyonTypeErrorreturnanemptyobject[duplicate]为什么TypeError上的JSON.stringify返回一个空对象[重复]【发布时间】:2016-03-2118:22:09【问题描述】:我正在使用节点4.... 查看详情

kotlinx JSON.stringify 忽略空值

】kotlinxJSON.stringify忽略空值【英文标题】:kotlinxJSON.stringifyignorenullvalues【发布时间】:2018-10-1211:32:42【问题描述】:有没有办法在字符串化时忽略空值?目前它呈现为:“字段”:空如果有办法完全不呈现空字段,那就太好了... 查看详情

在类中使用 RxJs 主题时 JSON.stringify 上的循环对象异常

】在类中使用RxJs主题时JSON.stringify上的循环对象异常【英文标题】:CyclicObjectExceptiononJSON.stringifywhenwithRxJsSubjectinaclass【发布时间】:2018-09-0110:21:25【问题描述】:我在使用序列化恰好具有Rxjs主题的类时遇到循环对象异常错误。... 查看详情

如何删除嵌套的 JSON.stringify() 属性

】如何删除嵌套的JSON.stringify()属性【英文标题】:HowtoremovenestedJSON.stringify()properties【发布时间】:2017-08-2618:05:38【问题描述】:我正在尝试使用Typescript修改字符串。该字符串由JSON.stringify()方法创建。我想删除"inputPort"的属性"id... 查看详情

浅谈js中的json.stringify()和json.parse()

参考技术A我们知道,JSON.stringify()和JSON.parse()是一对处理JSON数据的方法,前者是将JSON对象序列化为字符串,而后者是将JSON字符串解析为JSON对象。但是你有较为深入地去了解过它们吗?它们分别可以传入几个参数以及每个参数对... 查看详情

深度使用json.stringify()

按照JSON的规范,使用JSON.stringify()做对象序列化时,如果一个属性为函数,那这个属性就会被忽略。constdata1={a:‘aaa‘,fn:function(){returntrue}}JSON.stringify(data)//结果是"{"a":"aaa"}"还有一种情况,一个属性的值为undefinedconstdata2={a:‘abc‘,... 查看详情

json.stringify()的深度使用

在使用JSON.stringify()对JSON数据进行序列化时1>如果里面的属性是function,则会被忽略constdata={a:‘a‘,fn:funciton(){returntrue}}JSON.stringify(data);//"{"a":"a"}"*******fn属性被忽略了**********2>如果里面的属性的值是undefined,也是会被忽略的constda 查看详情

json.stringify详解

参考技术A当我们使用JSON.stringify()序列化一个值为JSON字符串,只有JSON安全的值才可以通过JSON.stringify()转换为字符串。那么,什么是JSON安全的值?能够有效用JSON形式表示的任何值。非JSON安全的值,例如:undefined、function和symbol... 查看详情

qs.stringify、qs.parse、json.stringify的使用和区别

...安装,是一个npm仓库所管理的包。importqsfrom'qs'而qs.stringify()将对象序列化成URL的形式,以&进行拼接。如图qs.parse()将URL解析成对象的形式JSON是正常类型的JSON JSON.stringify同qs.stringify()对比,功能虽然是都是序列化,但是... 查看详情

如何 JSON.stringify 对象数组

】如何JSON.stringify对象数组【英文标题】:HowtoJSON.stringifyanarrayofobjects【发布时间】:2016-05-0700:44:08【问题描述】:我正在尝试JSON.stringify()以下键/值对,其中值是对象数组。varstring=JSON.stringify(onlineUsers:getUsersInRoom(users,room));这是... 查看详情

JSON.stringify 深层对象

】JSON.stringify深层对象【英文标题】:JSON.stringifydeepobjects【发布时间】:2012-12-0110:13:23【问题描述】:我需要一个从任何参数构建JSON有效字符串的函数,但是:通过不添加两次对象来避免递归问题通过截断超过给定深度来避免... 查看详情

JSON.stringify() 和 JavaScript 对象

】JSON.stringify()和JavaScript对象【英文标题】:JSON.stringify()andJavaScriptObjects【发布时间】:2011-08-2615:26:00【问题描述】:我在想也许我错过了一些我现在正在学习的JavaScript内容。我在Chrome控制台中尝试了这段代码:a=[];a.name="test";JS... 查看详情

json、array基础知识

...定以下是合格的JSON格式以下是不合格的写法思路:用JSON.stringify方法用于将一个值转为字符串。该字符串符合JSON格式,并且可以被JSON.parse方法还原。使用JSON.parse方法将JSON字符串转化成对象。注意:JSON.stringify方法会忽略对象的... 查看详情

text[stringify循环json对象]#js#json#stringify#cyclic#object(代码片段)

查看详情

为啥 JSON.stringify 不显示作为函数的对象属性?

】为啥JSON.stringify不显示作为函数的对象属性?【英文标题】:Whydoesn\'tJSON.stringifydisplayobjectpropertiesthatarefunctions?为什么JSON.stringify不显示作为函数的对象属性?【发布时间】:2012-05-3013:13:44【问题描述】:为什么JSON.stringify()不... 查看详情

json.stringify()的使用

参考技术A复制粘贴一下JSON.stringify()三个参数的含义:返回值:返回包含JSON文本的字符串。从上面的参数说明中可以看到,第二个参数可以是一个函数或者数组,这给了我们很大的发挥空间。stringify()的第一个和第三个参数都好... 查看详情