问题标签 [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.
php - 从 ColdFusion 的 serializeJSON 方法到 PHP 的 json_decode 有人遇到问题吗?
互联网对此没有帮助。我们在 ColdFusion 中使用编码数据serializeJSON
并尝试在 PHP 中使用json_decode
. 大多数情况下,这工作正常,但在某些情况下,json_decode
返回NULL
。我们已经寻找了明显的罪魁祸首,但serializeJSON
似乎正在按预期格式化事情。还有什么问题?
更新:有几个人(明智地)要求我发布导致问题的输出。我会,除了我们刚刚发现结果集是我们所有的数据(列出 2300 多个出租物业的信息,总共 565,135 个 ASCII 字符)!这可能是个问题,尽管我在 PHP 文档中没有看到任何关于字符串最大大小的内容。那里的限制因素是什么?内存?
更新二:问题似乎是我们的几个用户复制并粘贴了带有“智能”引号的 Microsoft Word 文本。那些讨厌的用户...
.net - 使用 .net 创建 JSON
首先,让我开始说我不是 .net 开发人员。我问这个问题的原因是我们推出了 REST-API,我们的第一个集成合作伙伴之一是 .net 商店。
所以基本上我们假设 .net 会提供某种包装器来创建 JSON,但是有问题的开发人员手动创建了字符串。我对这个主题进行了一些研究,但我真的找不到任何东西,尽管我相信 .net 提供了一些东西。:)
在 PHP 中,我会执行以下操作(假设 ext/json 可用;):
我也对您使用什么将 json 解码为数组/对象结构感兴趣。
非常感谢帮助。
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 服务参数以使用泛型类.
我敢肯定这里有很多问题和违反“最佳实践”的行为,但它为我们完成了工作,而无需创建大量自定义转换器类。
javascript - 如何动态引用对象?
在 Javascript 中,我有一个对象:
现在,我想做这个
但它当然行不通。动态引用此对象的正确方法是什么?
c# - 反序列化 JSON Google AJAX 翻译 API
我有 JSON 像这样回来:
我需要将其解析为我设置的 ResponseData 对象:
我像这样反序列化它:
但无论什么翻译的文本总是空的。
c# - 有没有更好的方法来验证请求是否接受 JSON?
实际上,我正在使用这种方式。你有更好的方法吗?
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 语法读取。
这是一些很好的背景阅读:围绕对象键的引号:
xml - Groovy 解析 JSON 与 XML
使用 groovy,您是否期望在读取和查询 JSON 与 XML 的速度和内存开销方面有更好的性能?
c# - 生成正确 Json 的对象初始化器语法
我正在尝试使用 linq 将数据列表塑造成特定的形状,以从 ajax 调用中作为 Json 返回。
鉴于此数据:
这段代码:**这是不正确的,需要修复!**
我想desiredResult
成为:
但目前是:
{ "c" : "One" },{ "c" : "Two" }
, ETC。
一个问题是,在对象初始值设定项的左侧,我想要的是 的值c
,而不是c
它本身......
javascript - 如何在 JavaScript 中对数组元素进行 JSON 解码?
我有一个 JavaScript 数组,其中包含一个 URL。如果我尝试简单地将 URL 放在页面中(该数组位于涉及 Yahoo! Maps API 的项目中),它会显示应有的 URL。
但是,如果我尝试执行重定向或只是对链接数组元素执行“警报”,我会得到:
function(){返回 JSON.encode(this);}
据我所知,这是因为浏览器在呈现页面时执行了 JSON.encode,因此链接显示正常。我尝试了几种方法使其正确重定向(这就是我想要对链接执行的操作)(包括使用“eval”),但没有运气。
在遵循一些建议后,我运行了eval('(' + jsonObject + ')')
,但它仍然返回相同的输出。
那么这是怎么做到的呢?