问题标签 [jsonfx]

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 投票
1 回答
1522 浏览

serialization - 如何反序列化 JsonFX 中的多态集合?

我的 JsonFX 序列化代码有效,但我正在序列化的对象包含多态实体列表,并且它们都被反序列化为它们的基本类型而不是它们的实际类型。

这是我的序列化代码:

如您所见,它非常简单。我也没有用任何属性或任何特殊的东西来装饰我的类以使它们可序列化。除了多态问题之外,这一切似乎都在正常工作。

那么我怎样才能让我的多态类型正确反序列化呢?

谢谢。

0 投票
3 回答
20849 浏览

asp.net-mvc - ASP.NET MVC 读取原始 JSON 发布数据

这真让我抓狂。我正在使用 ASP.NET MVC。我有一个带有 HttpPost 操作的控制器,它充当另一个服务器(不在我的控制之下)调用的回调 URL。我想在不使用 WebAPI 或模型绑定的情况下动态读取发布到它的 JSON。该 URL 还具有传递给它的查询字符串参数。

回调 URL 如下所示:

http://domain.com/callback?secret=1234

我尝试使用以下方法阅读发布的输入:

但是“jsonData”始终为空或为空。

我只想获取发布的输入并将其粘贴到 JsonFx 中,以便我可以动态访问内容。关于如何以最简单的方式做到这一点的任何想法?

更新

我发现了以下...

虽然以上不起作用(jsonData 将为空或空),但如果我在调用服务器上配置我有哪些小选项以省略“秘密”查询字符串参数,则以下是我能做的那是因为它不是我的服务器。在这种情况下, jsonData 将具有正确的已发布 JSON 字符串:

解决这个问题非常令人沮丧,我不知道有一种简单的方法可以在标准 MVC 控制器上同时接受查询字符串和发布的 JSON 数据。

我有一个带有 Action 方法的“回调控制器”,它接受来自不同第三方服务器的各种数据(通过 GET、通过表单 POST、通过 JSON POST、通过带查询字符串的 JSON POST 等)。这些是商家类型的回调,我无法控制用于传达信息的格式或方法。我只需要接受回调并处理应该存在的信息。

除了“JSON POST w/a Query String”的情况外,所有这些在我的控制器中都可以正常工作。

这似乎(至少在我看来)是标准 ASP.NET MVC 控制器的一个缺点。???

任何人都可以提出一个可以在标准 ASP.NET MVC 控制器中使用的解决方案吗?

0 投票
1 回答
1024 浏览

deserialization - 如何从 JsonFX 反序列化对象中获取特定值?

我正在使用 JsonFX(这是一个要求,Json.Net 不是一个选项)从 Json 中提取值,但我不想创建一个类来反序列化我想要的 Json 的每一位解析。因此,如果我有一点 JSON:

我想随机访问 Child.Name。使用 Json.Net,我只需要 JObject.Parse(json)["Parent"]["Child"]["Name"]。我需要做同样的事情,使用 JsonFX。

使用调试器,我可以看到:

几乎可以让我到达那里。如果我查看结果,它本质上是一个字典,所有数据都采用我期望的格式。问题是,因为它是一个对象,我无法访问这些值中的任何一个。results["Parent"] 无法编译。

如何在不创建镜像数据的类的情况下获得这些值?

0 投票
4 回答
41328 浏览

c# - 读取 JSON 字符串作为键值

我有以下json:

我想将值作为键值对。就像是:

应该给出数据数组的第一项。

我正在使用 JSONFx.net。但它提供了强类型对象。我不要那个。如前所述,有什么方法可以将 JSON 解析为键值吗?

谢谢

0 投票
1 回答
367 浏览

c# - 解析具有不同类型对象的json字符串的方法

我有以下 json 字符串

使用JSONTOC#

生成以下类。

可以看到,该工具已生成具有所有可能属性的Result类。

我正在尝试以下方法来解析 json

这里可以T下面两个类

我有这些类声明作为参考,类定义可以完全不同。

** 如何通过指定 Result 类型来解析此 json。** 我正在使用 JSONFx.net 反序列化回对象。

谢谢

0 投票
1 回答
951 浏览

c# - 字典枚举器停止在 Unity3D 中的某些 Android 设备上提供接口 mid App

我们在某些 Android 设备(Nexus 10、Galaxy Note 3(SM-N9005、SM-N9000Q)、Galaxy Tab、S4(SGH-I337、SGH-M919、GT-I9505)上使用 C# 和 JsonFX 在 Unity3D 中遇到问题, Galaxy Note 10.1 (SM-P600, SM-P601), HTC One)。

在我们的应用程序开始时,任何使用 JsonFX 序列化的 Dictionary< string, string > 都会正确生成一个字符串,但在某些时候会损坏,从那时起将抛出带有以下消息的 JsonSerializationException:

经过调查,我们发现在一些未知事件之前,以下代码(这是 JsonFX Dictionary 流程的简化)......

...成功获得以下类型的字典枚举器:

一旦被破坏,它就无法获得字典枚举器,因为返回的枚举器是以下类型:

有趣的是,我们尝试在开始时构建一个字典并通过我们的游戏流程重新测试同一个实例,即使在这种情况下,它也会在错误发生后停止可序列化。

值得注意的是,这只会中断 Dictionary< string, string > - 我们正在使用 Dictionary< string, object > 运行相同的测试,并且它们继续返回预期的枚举数类型。尽管在我们的整个游戏流程中进行了乱扔测试和日志记录,但我们无法准确确定它在哪里损坏,因为它似乎在协程更新之间中断。

我们尝试在错误前后转储加载的程序集以尝试捕获依赖项更改版本,但没有区别。

这个问题是由一个看起来很单纯的数据变化引入的,它改善了我们对日语字符的支持,所以我们怀疑它暴露了一个现有的问题。

我们已经通过修复 Json 库的字典解析来支持这个新案例来轻松解决这个问题,但我们更担心是什么导致了这个潜在问题,以及它可能导致的其他什么我们还没有注意到的问题。

任何人都在 Dictionary 或其他集合类行为的变化方式中看到类似的问题,或者对我们如何进一步追踪导致问题的原因提出建议?

0 投票
2 回答
418 浏览

c# - 无法加载文件或程序集“JsonFx.Json”或其依赖项之一。试图加载格式不正确的程序

我正在尝试编译和运行一个包含一些外部 DLL 的 Web 应用程序。

该应用程序编译没有错误,但是当我运行它时,我收到以下错误:

无法加载文件或程序集“JsonFx.Json”或其依赖项之一。试图加载格式不正确的程序。

此问题的两个最常见的解决方案似乎是在 IIS 服务器中启用 32 位应用程序,并确保该解决方案不会在 32 位模式下编译某些项目而在 64 位模式下编译其他项目。我已经尝试了这两种方法,但都无济于事。

任何帮助将非常感激。

装配负载跟踪:

0 投票
2 回答
1759 浏览

json - JsonFx 与 IL2CPP

构造函数不使用 IL2CPP。这是我得到的日志。

MissingMethodException:找不到方法:'未找到默认构造函数... ctor() of System.ComponentModel.ByteConverter'。在 System.ArgumentNullException..ctor (System.String paramName) [0x00000] in :0 在 System.Activator.CreateInstance (System.Type 类型,布尔非公共) [0x00000] 在 :0 在 System.Activator.CreateInstance (System.Type type) [0x00000] in :0 at System.ComponentModel.TypeDescriptor.GetConverter (System.Type type) [0x00000] in :0 at JsonFx.Json.TypeCoercionUtility.CoerceType (System.Type targetType, System.Object value) [0x00000]在 :0 在 JsonFx.Json.JsonReader.ReadNumber (System.Type expectedType) [0x00000] 在 :0 在 JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] 在 :0
在 JsonFx.Json.JsonReader.ReadArray (System.Type arrayType) [0x00000] in :0 在 JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] 在 :0
在 JsonFx.Json.JsonReader。 ReadObject (System.Type objectType) [0x00000] in :0 at JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] in :0 at JsonFx.Json.JsonReader.ReadObject (System.Type objectType) [0x00000] 在 :0 在 JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] 在 :0 在 JsonFx.Json.JsonReader.ReadObject (System.Type objectType) [0x00000] 在 :0 在JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] in :0
在 JsonFx.Json.JsonReader.ReadObject (System.Type objectType) [0x00000] 在:0 在 JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] 在:0 在 JsonFx.Json.JsonReader。反序列化(Int32 开始,System.Type 类型)[0x00000] 在:0 在 JsonFx.Json.JsonReader.Deserialize(System.String 值,Int32 开始,System.Type 类型)[0x00000] 在:0 在 JsonFx.Json.JsonReader .Deserialize[BGS] (System.String value) [0x00000] in :0 at GameData.ParseJson () [0x00000] in :0 at GameData.loaddata () [0x00000] in :0 at mainmenuUI.Start () [0x00000]在:0 在 System.Array+InternalEnumerator 1[System.Collections.Hashtable+Slot].get_Current () [0x00000] in <filename unknown>:0 System.InternalEnumerator1:get_Current()

0 投票
1 回答
795 浏览

c# - 如何过滤/转换要使用 jsonfx 序列化的对象属性?

我使用 JsonFX 将实例序列化为 json,我需要忽略一些属性并预处理其他属性。我怎么做 ?文档对此不是很清楚。

我的课看起来有点像这个:

输出 json 时,我需要忽略属性(即整个 3d 场景)并使用一些压缩方案对,进行scene预处理。verticesindicesedgeIndices

而且,很明显,我在接收json时需要对称操作。

但是如何?

0 投票
1 回答
247 浏览

json - JsonFx 反序列化特殊字符

我在使用 Json.fx 反序列化特殊字符时遇到问题。当我尝试序列化“ğ,ş,ü”等字符时,Jsonfx.Serialize 和 Jsonfx.Deserialize 函数无法正常工作。

我尝试为我的应用程序解决本地化问题。请帮帮我。

这是我的课程:

}


日志消息:

{"LanguageId":7,"menu":{"MenuStrings":["\u0130ske\u011Fderinovi\u015F","\u015Ea\u011FmiI","\u015Ejikovamo\u011Fvi\u015F"]}} UnityEngine.Debug:Log(对象)本地化:Awake()(位于 Assets/Scripts/Localization.cs:155)

谢谢你的时间。