问题标签 [json]

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 投票
4 回答
2108 浏览

php - 从 ColdFusion 的 serializeJSON 方法到 PHP 的 json_decode 有人遇到问题吗?

互联网对此没有帮助。我们在 ColdFusion 中使用编码数据serializeJSON并尝试在 PHP 中使用json_decode. 大多数情况下,这工作正常,但在某些情况下,json_decode返回NULL。我们已经寻找了明显的罪魁祸首,但serializeJSON似乎正在按预期格式化事情。还有什么问题?

更新:有几个人(明智地)要求我发布导致问题的输出。我会,除了我们刚刚发现结果集是我们所有的数据(列出 2300 多个出租物业的信息,总共 565,135 个 ASCII 字符)!这可能是个问题,尽管我在 PHP 文档中没有看到任何关于字符串最大大小的内容。那里的限制因素是什么?内存?

更新二:问题似乎是我们的几个用户复制并粘贴了带有“智能”引号的 Microsoft Word 文本。那些讨厌的用户...

0 投票
6 回答
8490 浏览

.net - 使用 .net 创建 JSON

首先,让我开始说我不是 .net 开发人员。我问这个问题的原因是我们推出了 REST-API,我们的第一个集成合作伙伴之一是 .net 商店。

所以基本上我们假设 .net 会提供某种包装器来创建 JSON,但是有问题的开发人员手动创建了字符串。我对这个主题进行了一些研究,但我真的找不到任何东西,尽管我相信 .net 提供了一些东西。:)

在 PHP 中,我会执行以下操作(假设 ext/json 可用;):

我也对您使用什么将 json 解码为数组/对象结构感兴趣。

非常感谢帮助。

0 投票
5 回答
18607 浏览

asp.net - 如何从 ASP.NET Web 服务实现自定义 JSON 序列化?

从 WebService 返回自定义类的实例时,有哪些序列化选项?

我们有一些具有许多子集合类属性的类,以及可能根据使用情况设置或不设置的其他属性。这些对象是从用 ScriptService 属性修饰的 ASP.NET .asmx WebService 返回的,因此在由各种 WebMethods 返回时通过 JSON 序列化进行序列化。

问题是开箱即用的序列化返回所有公共属性,无论它们是否被使用,以及返回类名和其他信息的方式比你想要限制数量更详细交通。

目前,对于返回的类,我们添加了处理 JSON 序列化的自定义 javascript 转换器,并将它们添加到 web.config 中,如下所示:

但这需要每个类都有一个自定义转换器。是否有任何其他方法可以通过扩展服务、创建自定义序列化程序等来更改开箱即用的 JSON 序列化?

跟进
@marxidad:

我们在其他应用程序中使用 DataContractJsonSerializer 类,但是我一直无法弄清楚如何将它应用于这些服务。以下是如何设置服务的示例:

WebMethods 由 javascript 调用并返回 JSON 序列化的数据。我们能够更改序列化的唯一方法是使用上面提到的 javascript 转换器?

有没有办法告诉 WebService 使用自定义 DataContractJsonSerializer?是否通过 web.config 配置,用属性装饰服务等?

更新
好吧,除了像上面那样创建单独的 JavaScriptConverters 之外,我们找不到任何方法来切换开箱即用的 JavaScriptSerializer。

为此,我们为避免创建单独的转换器所做的是创建一个通用的 JavaScriptConverter。我们向我们想要处理的类添加了一个空接口,并且在 Web 服务启动时调用的 SupportedTypes 使用反射来查找实现该接口的任何类型,如下所示:

实际实现有点不同,因此类型被缓存,我们可能会重构它以使用自定义属性而不是空接口。

然而,在处理自定义集合时,我们遇到了一个稍微不同的问题。这些通常只是扩展一个通用列表,但使用自定义类而不是 List<> 本身,因为集合类中通常存在自定义逻辑、排序等。

问题是 JavaScriptConverter 的 Serialize 方法返回一个字典,该字典被序列化为 JSON 作为具有关联类型的名称值对,而列表作为数组返回。因此无法使用转换器轻松序列化集合类。解决方案是不将这些类型包含在转换器的 SupportedTypes 中,并且它们完美地序列化为列表。

因此,序列化有效,但是当您尝试以其他方式将这些对象作为 Web 服务调用的参数传递时,反序列化会中断,因为它们不能将输入视为字符串/对象字典列表,这可以' 不会被转换为集合包含的任何自定义类的列表。我们能找到解决这个问题的唯一方法是创建一个泛型类,它是一个字符串/对象字典列表,然后将列表转换为适当的自定义集合类,然后更改任何 Web 服务参数以使用泛型类.

我敢肯定这里有很多问题和违反“最佳实践”的行为,但它为我们完成了工作,而无需创建大量自定义转换器类。

0 投票
3 回答
6315 浏览

javascript - 如何动态引用对象?

在 Javascript 中,我有一个对象:

现在,我想做这个

但它当然行不通。动态引用此对象的正确方法是什么?

0 投票
1 回答
2719 浏览

c# - 反序列化 JSON Google AJAX 翻译 API

我有 JSON 像这样回来:

我需要将其解析为我设置的 ResponseData 对象:

我像这样反序列化它:

但无论什么翻译的文本总是空的。

0 投票
2 回答
413 浏览

c# - 有没有更好的方法来验证请求是否接受 JSON?

实际上,我正在使用这种方式。你有更好的方法吗?

0 投票
3 回答
3215 浏览

json - 处理 JSON 序列化变化的正确方法

我有一个使用 Python 的 SimpleJSON 序列化 JSON 的网络服务,以及一个使用 Google 的 Visualization API的 javascript/ 客户端。当我尝试使用 Google 数据表的查询方法读取 JSON 响应时,我收到“无效标签”错误。

我注意到 Google 电子表格输出 JSON,对象键周围没有引号。我尝试在没有引号的情况下阅读 JSON 并且有效。我想知道将 SimpleJSON 输出读入 Google 数据表的最佳方法是什么

query = new google.visualization.Query("http://www.myuri.com/api/").

我可以使用正则表达式来删除引号,但这似乎很草率。我尝试过的 javascript JSON 解析库不会在对象键周围没有引号的情况下以 JSON 语法读取。

这是一些很好的背景阅读:围绕对象键的引号:

http://simonwillison.net/2006/Oct/11/json/

0 投票
5 回答
6411 浏览

xml - Groovy 解析 JSON 与 XML

使用 groovy,您是否期望在读取和查询 JSON 与 XML 的速度和内存开销方面有更好的性能?

0 投票
4 回答
931 浏览

c# - 生成正确 Json 的对象初始化器语法

我正在尝试使用 linq 将数据列表塑造成特定的形状,以从 ajax 调用中作为 Json 返回。

鉴于此数据:

这段代码:**这是不正确的,需要修复!**

我想desiredResult成为:

但目前是:

{ "c" : "One" },{ "c" : "Two" }, ETC。

一个问题是,在对象初始值设定项的左侧,我想要的是 的值c,而不是c它本身......

0 投票
7 回答
204770 浏览

javascript - 如何在 JavaScript 中对数组元素进行 JSON 解码?

我有一个 JavaScript 数组,其中包含一个 URL。如果我尝试简单地将 URL 放在页面中(该数组位于涉及 Yahoo! Maps API 的项目中),它会显示应有的 URL。

但是,如果我尝试执行重定向或只是对链接数组元素执行“警报”,我会得到:

function(){返回 JSON.encode(this);}

据我所知,这是因为浏览器在呈现页面时执行了 JSON.encode,因此链接显示正常。我尝试了几种方法使其正确重定向(这就是我想要对链接执行的操作)(包括使用“eval”),但没有运气。

在遵循一些建议后,我运行了eval('(' + jsonObject + ')'),但它仍然返回相同的输出。

那么这是怎么做到的呢?