问题标签 [json.net]

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 投票
12 回答
7433 浏览

c# - .NET 对象最灵活的序列化是什么,但实现起来很简单?

我想序列化和反序列化对象而不必担心整个类图。

灵活性是关键。我希望能够序列化传递给我的任何对象,而无需整个对象图中所需的完整属性。

这意味着二进制序列化不是一个选项,因为它仅适用于其他 .NET 平台。我还想要一些人可以阅读的东西,因此可以被管理程序和其他解释器破译。

我在使用 DataContract、JSON 和 XML 序列化程序时发现了问题。

  • 大多数这些错误似乎都集中在列表/字典的序列化(即XML Serializable Generic Dictionary)上。
  • “将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用 KnownTypeAttribute 属性或将它们添加到传递给 DataContractSerializer 的已知类型列表中。”

请根据实际经验而不是理论或阅读文章来回答。

0 投票
3 回答
20147 浏览

c# - 是否有在 Windows Mobile 上用 C# 读取 JSON 的库?

我正在尝试找到一个库来解析 Windows Mobile 上 C# 上的 JSON(使用 Visual Studio 2005)。我发现允许我在 C#(litjson 和 Jayrock)中解析 JSON 的库在 Windows Mobile 上不起作用,它们需要 .NET 紧凑框架中不存在的类。有没有我忽略的图书馆?或者在这些情况下是否有另一种简单的方法来解析 JSON?

0 投票
9 回答
18345 浏览

nhibernate - JSON.NET 和 nHibernate 延迟加载集合

有人将 JSON.NET 与 nHibernate 一起使用吗?我注意到当我尝试加载带有子集合的类时出现错误。

0 投票
5 回答
162762 浏览

c# - 使用 Json.net 解析 JSON

我正在尝试使用 JSon.Net 库解析一些 JSON。文档似乎有点稀疏,我对如何完成我需要的东西感到困惑。这是我需要解析的 JSON 格式。

我真正需要的唯一数据是对象数组中的内容。我是否有可能用 JSonTextReader 之类的东西来解析它,然后取出我想要的东西,比如 OBJECT_TYPE 和 x 和 y 位置?我似乎无法JSonTextReader按照我想要的方式工作,而且我几乎找不到使用它的例子。

似乎先序列化然后对我的对象使用 LINQ 是理想的,我发现的每个示例都首先讨论序列化 JSON,但我不确定如何为这个结构构建一个对象。特别是对象数组,它需要类似于一对属性和位置对象的列表。我不知道如何编码我的对象,以便 JSon.Net 知道如何序列化它。

我以为我可以编写自己的简单解析器,将我需要的所有内容提取到我创建的属性对象中,但我运气不佳。

希望这一切都有意义,有什么想法吗?

0 投票
1 回答
311 浏览

linq-to-sql - 创建轻量级 Linq2Sql 代理对象

我试图找到通过 JSON 将我的 Linq2Sql 对象发送到我的 jQuery 插件的最有效方法,最好不要为每个类添加额外的代码。

EntitySet 是主要问题,因为它们不仅会导致递归,而且当递归被忽略时(使用JSON.NET的 ReferenceLoopHandling 功能),当我真正需要 1 或 2 个级别时,可以检索大量数据。当您谈论用户、角色和权限时,这会变得非常糟糕,因为您在 JSON 遇到递归和停止之前将用户角色、用户权限、角色权限和角色用户全部放在了 JSON 中。将此与我真正想要的进行比较,这只是 RoleId。

我最初的方法是发送对象的“简化”版本,我在其中反映实体并将任何 EntitySets 设置为 null,但当然在上面的示例中,Roles 被设置为 null,因此 RoleId 为 null。仅将第二级属性设置为空类型的作品,但仍然有太多的数据,因为当 JsonSerializer 进行反射时,没有被杀死的实体集(第一级)重新填充它们的关联表,我仍然得到所有那些 Permission 对象我只是不需要。

我绝对不想陷入为每个类创建一个轻量级版本并在它们上实现“From”和“To”样式的方法的情况,因为这是很多工作并且看起来很浪费。

另一种选择是在相关属性上放置一个 JsonIgnoreAttribute,但是每当需要重新生成类时,这将导致噩梦般的场景。

我目前喜欢和讨厌的最喜欢的解决方案是将类置于选择加入序列化模式,但是因为我无法向真实属性添加属性,所以我必须在部分中创建仅限 JSON 的属性班级。同样,这似乎很浪费,但我认为这是迄今为止最好的。

任何建议都感激不尽!

0 投票
1 回答
7223 浏览

vb.net - 在 vb.net 中的 json.net 3.5b2 中从客户端反序列化 json

我有一个我遇到的问题的测试用例,基本上我在服务器上创建了一个 json 对象并将其提供给在客户端调用的 AJAX。这很好用,但是,当我尝试将其发回并反序列化服务器端时,我得到以下异常:

没有为“System.String”类型定义无参数构造函数。

System.MissingMethodException 在 System.Web.Script.Serialization.ObjectConverter.ConvertDictionaryToObject(IDictionary 2 dictionary, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object& convertedObject) at system.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeInternal(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object& convertedObject) at system.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeMain(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object& convertedObject) at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToType(Object o, Type type, JavaScriptSerializer serializer) at System.Web.Script.Services.WebServiceMethodData.StrongTypeParameters(IDictionary2 rawParams) 在 System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary 2 parameters) at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary2 rawParams) 在 System.Web.Script.Services.RestHandler .ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)

默认.aspx

默认.aspx.vb

对于我在这里做错的事情,我将不胜感激。提前致谢。

0 投票
3 回答
4748 浏览

asp.net-mvc - 哪个更快 asp.net mvc json 或 json.net?

我想知道是否有人对 Asp.net MVC 中的 JSON() 函数进行了任何基准测试,以及它与 JSON.NET 的比较如何?还有哪一个输出最好的 json 字符串?

0 投票
2 回答
856 浏览

asp.net - 命名空间“系统”中不存在类型或命名空间“Linq”

我正在尝试构建Json.NET 2.0 库以针对 .NET 框架版本 2.0,并且多次收到此错误。我去向项目中添加对 System.Linq 的引用,但是引用列表中不存在它!我该怎么办?

0 投票
3 回答
142949 浏览

json - 如何在没有格式化的情况下序列化 JObject?

我有一个JObject用 LINQ to JSON 构建的(我正在使用 Json.Net)(也由同一个库提供)。当我在 上调用该ToString()方法时JObject,它会将结果输出为格式化的 JSON。

如何为此将格式设置为“无”?

0 投票
1 回答
6278 浏览

c# - 在 C# 中反序列化 Chrome 书签 JSON 数据

在回答我几天前提出的一个问题时,我试图让自己稍微舒展一下,做一些我以前没有真正关注过的事情。我已经进行了一些搜索(在这里和一般情况下),但是找不到我想要实现的答案(甚至是合理的提示)(尽管有些事情接近了)。

基本上,我正在尝试使用Json.NET 库对 Google Chrome 书签文件的数据进行反序列化(不过,如果有更好的选择,我完全赞成 - 这个库的文档在某些地方有点令人困惑) . 对于下一步要采取的措施,我有点困惑,主要是因为习惯于 PHP 对 JSON 数据的出色处理(使用json_decode()),允许单个函数调用,然后是简单的关联数组访问。

库(Json.NET)希望我指定一个对象类型,它可以将 JSON 数据反序列化为,但考虑到书签文件本身的格式,我不确定如何构建这样的对象。格式大致如下:

现在,在 PHP 中,我更习惯于按照以下方式进行操作,以获取我想要的数据,并以“Json.NET”结束:

我可以很简单地计算出要创建哪些对象来表示数据(例如根对象,然后是书签列表对象,最后是单个书签对象)-但我真的不确定如何实现它们,然后让库正确反序列化为相关对象。

任何可以提供的建议将不胜感激。