问题标签 [stringify]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
12389 浏览

c++ - 如何将static_assert与sizeof和stringify结合起来?

内存使用在我的应用程序中非常关键。因此,我有特定的断言,在编译时检查内存大小,如果大小与我们之前认为正确的大小不同,则给出一个 static_assert 。

我已经定义了一个这样的宏:

这个宏使得写这个很容易:

问题是,当这个 static_assert 关闭时,可能很难找出新的大小应该是多少(例如,通过使用隐藏的编译器选项“/d1 reportAllClassLayout”)。如果我可以包括实际尺寸会更方便,所以而不是:

书的尺寸不正确!

它会显示

书的尺寸不正确!(预期 144,大小为 152)

我试着写这样的东西:

但是您不能在函数调用中使用字符串化 (#) 运算符。

我还尝试添加双字符串化技巧,如下所示:

但不是打印size is 152,而是打印size is sizeof(Book).

有没有办法在 static_assert 中对 sizeof 的结果进行字符串化?

0 投票
7 回答
26810 浏览

javascript - 如何对事件对象进行字符串化?

JSON.stringify(eventObject);

给出:

TypeError: Converting circular structure to JSON


dojox.json.ref.toJson(eventObject);

给出:

TypeError: Accessing selectionEnd on an input element that cannot have a selection.


是否有一些库/代码可以用来完成它?

0 投票
1 回答
910 浏览

json - IE 8 中的 json stringify 给出运行时错误 Object property or method not supported

/* 问题描述 - 我正在使用 json stringify 方法将 javascript 数组转换为 json 表示法中的字符串。但是我在 hidden.value = JSON.stringify(jsonObj); 这应该可以工作,因为 IE8 支持 stringify。请告知

0 投票
1 回答
1177 浏览

jquery - 为什么 JSON.stringify() 不将数据传递给 $.cookie()

这是我得到的代码:

JSON.stringfy() 不适用于 $.cookie() 而我认为它应该。我做错了什么,我该如何解决或使这项工作正常进行?我找到了这个答案,这几乎就是我所做的,但就我而言,由于某种原因它不起作用。我正在使用这个 jQuery cookie 插件

0 投票
1 回答
1915 浏览

javascript - 尝试将 URL 存储为 JSON

我正在尝试使用 HTML5 本地存储存储有关许多站点的一些详细信息,但我遇到了一些麻烦。

基本上,我希望应用程序能够离线缓存数据,并且我一直在开发它的方式,每次主页加载时,内容都被缓存为 localStorage.sitedata。我将其存储为 JSON。

我为其编写的代码如下所示:

现在,dataToCacheArray 中的数据正是我想要的——它是一个包含许多 JavaScript 对象的数组。这是其中之一,如果我使用 console.log() 来查看 dataToCacheArray,如 Chrome 的开发人员工具中所示:

之后,我将 dataToCacheArray 的字符串化版本存储为 dataToCache,如果我使用 console.log() 查看它,我会得到:

如您所见,由于某种原因,URL 未包含在字符串化版本中。关于我可能在哪里出错的任何想法?

0 投票
4 回答
29528 浏览

javascript - 使用 stringify 设置和获取对象到本地存储?

创建一个名为 car 的对象:

  1. 从 localStorage 读取后设置对象和字符串化:

    字符串化后的汽车----------------> [object Object] at file:///android_asset/www/...

  2. 在它之后将对象字符串化并将对象设置为 localStorage: localStorage.setItem('car',JSON.stringify(car)); car = localStorage.getItem('car');

stringify 后的车----------------> "{\"brand\":\"Skoda\",\"color\":\"Red\",\"year \":\"2012\"}" 在 file:///android_asset/www/...

问题1:为什么字符串化对象时的顺序会有所不同?

问题2:为什么我不能使用这样的字符串化对象:

console.log("car.brand----->" +car.brand); car.name----->未定义

0 投票
6 回答
16771 浏览

javascript - RegExp的序列化

因此,我有兴趣发现JSON.stringify将 RegExp 简化为空的对象文字(小提琴):

这种行为是预期的吗?我意识到 RegExp 是一个没有要序列化的属性的对象。也就是说,日期也是对象。然而JSON.stringify()设法产生一个有意义的字符串:

我希望 JSON 能够通过使用.RegExp.prototype.toString()

0 投票
3 回答
8676 浏览

javascript - 在 json 字符串化数组对象时排除对象属性

嘿,我有一个类似这样的数组对象

这里最外面的数组包含 A 类的对象,它有一些公共道具,一些私有 porps,它还包含一个包含 B 类对象的数组,其中还包含一些公共和私有字段。

所以基本上这是我的层次结构

现在,在对其进行字符串化(序列化)时,我只想在序列化字符串中包含公共道具和数组。

例如对于上面的 JSON 表示,我想要这样的东西

现在我可以在每个类中创建一个函数getState() ,它只会返回需要字符串化的字段,但我似乎无法找到一种方法来让 JSON.stringify 的本机实现在序列化之前调用该方法。有没有办法做到这一点?

在 JSON.stringify() 的输出中引用了隐藏某些值,但它只解释了如何在单个层次结构中排除简单的数字或字符串道具,但如何在多个层次结构中排除道具?

注意:我所有的课程都遵循模块模式

0 投票
6 回答
59488 浏览

c# - 在反序列化期间将 JSON 日期转换为 .NET 日期时间的正确方法

我有一个使用 JSON 数据调用 MVC 控制器的 javascript 函数:

在服务器端,在控制器内,我似乎无法克服这个错误:

/Date(1347992529530)/ 不是 DateTime 的有效值。

当我调用 Deserialize() 时发生该异常(下面方法中的第三行):

我一直在做一些谷歌搜索,上面的代码是我完成这项工作的最新尝试(使用此处的 TimeSpanJsonConverter )。其他方法显示仅向服务器发送日期,但我有一个将日期作为某些属性的对象列表。

是否有一种优雅的、普遍接受的方法来解决这个问题,还是我们仍然需要某种丑陋的解决方法?解决这个问题的正确方法是什么?

=================== 原始问题结束===================


编辑 - 通过使用 JsonConvert 序列化解决

请参阅下面的答案(不是这个问题中糟糕的解决方法)。


编辑 - 糟糕的解决方法

我创建了一个具有与域对象完全相同的字段的 DTO,除了我创建了日期字段字符串以便它们可以反序列化。现在我可以反序列化它,我将努力将日期转换为有效格式,以便我可以从我的 DTO 创建域对象。

我只是使用 DTO 进行反序列化:


编辑 2 - 将 JavaScript 日期转换为 .NET

为了完整起见,并希望我为别人节省一个小时,这就是我能够转换 javascript 日期的方式:

0 投票
2 回答
1815 浏览

php - JSON.stringify 数据在 url 中是什么样的

我使用通过调用JSON.stringify将 jQuery 数组$_POST数据发送到 PHP 文件.ajax()。调用工作正常并返回所需的数据,但是:

如果我要手动调试和输入变量,这些数据在 url 格式中是什么样的?

http://domain.com/ajax.php?foo=1,2&bar=3,4或者是其他东西?

我的解决方案: 网址是http://domain.com/ajax.php?foo=[1,2]&bar=[3,4]