问题标签 [json-serialization]

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 投票
9 回答
132971 浏览

c# - 如何将 C# 匿名类型序列化为 JSON 字符串?

我正在尝试使用以下代码将匿名类型序列化为 JSON:

但是,执行此操作时出现以下异常:

类型 '<>f__AnonymousType1`3[System.Int32,System.Int32,System.Object[]]' 无法序列化。考虑使用 DataContractAttribute 属性对其进行标记,并使用 DataMemberAttribute 属性标记您想要序列化的所有成员。有关其他支持的类型,请参阅 Microsoft .NET Framework 文档。

我不能将属性应用于匿名类型(据我所知)。还有其他方法可以进行此序列化还是我遗漏了什么?

0 投票
3 回答
279466 浏览

json - JSON中的反序列化和序列化是什么?

我已经看到了使用 JSON 的术语“反序列化”和“序列化”。他们的意思是什么?

0 投票
1 回答
8827 浏览

java - @JSonIgnore 注释的等效代码设置是什么?

我对我尝试使用的许多其他技术都是新手,所以我很感激详细的回答JavaJackson

有没有办法防止一个或多个字段被序列Jackson化为JSONString_like 格式,但不使用任何类型的JSON注释?

比如:mapper.getSerializationConfig().something(ignore("displayname"))如果你知道我的意思。我的对象是一个类的实例,它扩展了另一个类,并实现了一个接口,依此类推,因此字段来自类的层次结构。我需要该JSON对象的表示,但只包含某些字段,因此我可以通过方法JSON在模拟请求中发送它。POST我正在使用Jackson 2.2.2.

0 投票
1 回答
2991 浏览

java - 仅在 json 中忽略字段,但在使用 jackson-dataformat-xml 时不忽略 xml

Jackson与模块一起使用jackson-dataformat-xml,我可以同时序列POJOJSONXML. 我的对象中有一些字段(xml 属性)应该只被序列化为XML而不是JSON. 如果我应用@JsonIgnore注释,即使使用@JsonXMLProperty.

我怎样才能只忽略JSON而不是忽略字段XML

0 投票
1 回答
4969 浏览

asp.net - ASP.NET Web API:JSON 序列化循环引用

我正在通过 ASP.NET Web API 检索 JSON 对象图。我正在尝试从子实体访问属性。然而,当查看浏览器的控制台时,它显示的是对对象的引用( $ref),而不是序列化该对象的属性。如何访问这些属性?

角度 JS 视图

服务

端点

评级域模型

输出

请参阅下面的 URL 以查看我从 API 获得的结果

0 投票
4 回答
69807 浏览

ios - 从类型 (_,_,_) throws -> Void 到非抛出函数类型 (NSData?, NSURLResponse?, NSError?) -> Void 的无效转换

我写了这段代码:

在更新到 XCode 7 之后,它给了我这个错误:从类型 (_, _, _) 的抛出函数的无效转换 throws -> Void 到非抛出函数类型 (NSData?, NSURLResponse?, NSError?) -> Void。排队,让任务在哪里。

谢谢

0 投票
1 回答
1544 浏览

json - 休息:发送枚举列表不会发送所有数据

1. 后端

在我的后端(SpringBoot)中,我正在发送枚举列表:

这是我的枚举:

2. 前端

在前端(angular2)中,我在我的 ng2 组件中收到了这个列表:

这是 MyEnum 类:

3. 结果

运行代码后:

但我希望:

0 投票
1 回答
72 浏览

javascript - 在服务器端 JavaScript aspx 中将对象转换为 JSON

我的应用程序在 IIS 8 (Windows 2012R2) 上的 aspx 文件中使用服务器端 JavaScript。
我想将 javascript 哈希转换为 JSON。

我的文件 test.aspx:

结果:["typ","alg"]
预期结果:{"typ":"JWT","alg":"HS256"}

为什么JavaScriptSerializer不能按预期工作?

0 投票
1 回答
1395 浏览

json - F# 将 JSON 字符串反序列化为正确的记录类型

场景是 - 从网络接收 JSON 字符串并将其反序列化为正确的相应记录类型。

JSON 字符串可以是:

(1)"{"a":"some text"}"

(2)"{"b":1}"

值可能不同,但字段的格式将对应于 Type1 或 Type2:

收到未知字符串时,我正在尝试获取正确记录类型的实例:

最后一行返回一个 Object 类型的对象。

在其上使用模式匹配并不能确定类型:

这里打印了“以上都不是”。

当我使用指示某种类型来反序列化对象时:

模式匹配正在工作和打印:

但是,这在我的情况下不起作用,因为我无法提前知道未知 JSON 字符串将具有什么类型的内容。

有没有办法根据字符串内容将 JSON 字符串反序列化为正确的记录类型?

注意:如有必要,当字符串在发送端被序列化时,类型的名称可以作为该字符串的一部分发送。但是,如何获得一个 Type 类型的实例,具有一个类型的名称,如“Type1”或“Type2”?

该类型的完全限定名称在不同的机器上会有所不同,所以我不确定它是否可能。即一台机器将 Type1 指定为:

另一个是:

0 投票
1 回答
60 浏览

json - Halarious - 嵌入式资源字段名称未使用自定义命名策略进行转换

我正在使用 HAL 规范框架:

https://github.com/surech/halarious

http://confluence.surech.ch/display/HAL/halarious+Home

http://stateless.co/hal_specification.html

使用自定义命名策略时,嵌入的资源字段名称似乎未正确转换。只有“非 HAL”字段正在转换。

问题:有没有办法确保将自定义命名约定应用于嵌入式资源而不仅仅是常规字段?

我在自定义 MessageBodyWriter 中有以下 Gson 配置...

AllLowercaseFieldNamingStrategy实现只是将字段名称转换为小写,就像这样@Override public String translateName(Field f) { return f.getName().toLowerCase(); }

例如:

导致字段名称不一致(根据命名策略应全部小写)...