Questions tagged «json.net»

Json.NET(也称为Newtonsoft.Json)是用于.NET的流行的高性能JSON框架。

30
无法加载文件或程序集“ Newtonsoft.Json”或其依赖项之一。清单定义与程序集引用不匹配
搜索后我尝试过的事情: 在Web.Config中,对旧版本进行绑定: <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.1.0" /> </dependentAssembly> 编辑我的.csproj文件,以确保只有一个Newtonsoft参考 <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <HintPath>..\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <SpecificVersion>False</SpecificVersion> <Private>True</Private> </Reference> 在我的计算机上搜索每个Newtonsoft.Json.dll并删除每个非6.0.1版本并删除我的temp文件夹的内容 在nuget Manager控制台中修复/重新安装软件包 它可以成功构建,但是在转到站点时出现错误。 编辑 好的,所以我尝试像每个nuget软件包一样重新安装,似乎已添加回4.5版本的newtonsoft.json.dll,但我遇到了相同的错误。我项目的目标框架是.NET 4.5.1,这是我现在得到的堆栈跟踪: “ /”应用程序中的服务器错误。 无法加载文件或程序集Newtonsoft.Json或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(从HRESULT异常:0x80131040) 说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中起源的更多信息。 异常详细信息:System.IO.FileLoadException无法加载文件或程序集Newtonsoft.Json或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(从HRESULT异常:0x80131040) 源错误: 当前Web请求的执行期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来标识有关异常的来源和位置的信息。 程序集加载跟踪:以下信息有助于确定为什么Newtonsoft.Json无法加载程序集。 === Pre-bind state information === LOG: DisplayName = Newtonsoft.Json (Partial) WRN: …

7
在C#中解析JSON
我正在尝试从Google AJAX搜索API解析一些JSON数据。我有这个网址,我想将其分解,以便显示结果。我目前已经编写了这段代码,但是尽管接下来有很多使用简化的JSON字符串的示例,但是我对于下一步的工作还是很迷茫。 一般来说,对于C#和.NET还是陌生的,我一直在努力为ASP.NET页面获取真正的文本输出,因此建议我尝试一下JSON.NET。有人能为我指出正确的方向,只是简单地编写一些代码,这些代码将从Google AJAX Search API中以JSON格式输入并输出到屏幕上吗? 编辑:全部修复!所有结果都很好。再次感谢Dreas Grech! using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.ServiceModel.Web; using System.Runtime.Serialization; using System.Runtime.Serialization.Json; using System.IO; using System.Text; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { …
201 c#  asp.net  json  parsing  json.net 

5
Json.NET可以序列化到流或从流反序列化吗?
我听说Json.NET比DataContractJsonSerializer更快,并想尝试一下... 但是我在JsonConvert上找不到任何采用流而不是字符串的方法。 例如,对于在WinPhone上反序列化包含JSON的文件,我使用以下代码将文件内容读取为字符串,然后反序列化为JSON。在我的(非常临时)测试中,它似乎比使用DataContractJsonSerializer直接从流中反序列化要慢大约4倍... // DCJS DataContractJsonSerializer dc = new DataContractJsonSerializer(typeof(Constants)); Constants constants = (Constants)dc.ReadObject(stream); // JSON.NET string json = new StreamReader(stream).ReadToEnd(); Constants constants = JsonConvert.DeserializeObject<Constants>(json); 我做错了吗?


4
如何在C#中编写JSON文件?
我需要在C#中使用JSON格式将以下数据写入文本文件。方括号对于使其成为有效的JSON格式很重要。 [ { "Id": 1, "SSN": 123, "Message": "whatever" }, { "Id": 2, "SSN": 125, "Message": "whatever" } ] 这是我的模型课: public class data { public int Id { get; set; } public int SSN { get; set; } public string Message { get; set;} }

8
使用JSON.NET将JSON数据反序列化为C#
我是刚接触C#和JSON数据的新手,正在寻求指导。我正在使用C#3.0,.NET3.5SP1和JSON.NET 3.5r6。 我有一个需要从JSON结构填充的已定义C#类。但是,并非从Web服务检索到的条目的每个JSON结构都包含C#类中定义的所有可能的属性。 我一直在做似乎错误,困难的方法,只是从JObject逐个选择每个值,然后将字符串转换为所需的类属性。 JsonSerializer serializer = new JsonSerializer(); var o = (JObject)serializer.Deserialize(myjsondata); MyAccount.EmployeeID = (string)o["employeeid"][0]; 将JSON结构反序列化为C#类并处理JSON源中可能丢失的数据的最佳方法是什么? 我的课程定义为: public class MyAccount { [JsonProperty(PropertyName = "username")] public string UserID { get; set; } [JsonProperty(PropertyName = "givenname")] public string GivenName { get; set; } [JsonProperty(PropertyName = "sn")] public string Surname { get; …

3
json.net有关键方法吗?
如果我的回复中包含键“错误”,我需要处理错误并显示警告框。 json.net中是否存在“ haskey”方法?喜欢: var x= JObject.Parse(string_my); if(x.HasKey["error_msg"]) MessageBox.Show("Error!")
139 c#  json  json.net 

8
使用Json.Net序列化时指定自定义DateTime格式
我正在开发一个API,以使用ASP.NET Web API公开一些数据。 在一种API中,客户希望我们以yyyy-MM-dd格式显示日期。我不想为此更改全局设置(例如GlobalConfiguration.Configuration.Formatters.JsonFormatter),因为它非常特定于此客户端。我确实在针对多个客户的解决方案中进行了开发。 我能想到的解决方案之一是创建一个自定义JsonConverter,然后将其放入需要进行自定义格式设置的属性中 例如 class ReturnObjectA { [JsonConverter(typeof(CustomDateTimeConverter))] public DateTime ReturnDate { get;set;} } 只是想知道是否还有其他简单的方法可以做到这一点。


5
JSON.net:如何在不使用默认构造函数的情况下反序列化?
我有一个具有默认构造函数的类,还有一个带有一组参数的重载构造函数。这些参数与对象上的字段匹配,并在构造时分配。此时,我需要将默认构造函数用于其他目的,因此,如果可以的话,我想保留它。 我的问题:如果删除默认构造函数并传递JSON字符串,则该对象将正确反序列化并传入构造函数参数,而不会出现任何问题。我最终以我期望的方式取回了对象。但是,一旦我将默认构造函数添加到对象中,当我调用JsonConvert.DeserializeObject<Result>(jsontext)该属性时,就不再填充这些属性。 在这一点上,我已经尝试添加new JsonSerializerSettings(){CheckAdditionalContent = true}反序列化调用。那什么也没做。 另一个说明。除了参数以小写字母开头外,contructor参数确实与字段名称完全匹配。我认为这并不重要,因为就像我提到的那样,反序列化可以在没有默认构造函数的情况下正常工作。 这是我的构造函数的一个示例: public Result() { } public Result(int? code, string format, Dictionary<string, string> details = null) { Code = code ?? ERROR_CODE; Format = format; if (details == null) Details = new Dictionary<string, string>(); else Details = details; }
136 c#  json  json.net 

16
在JSON.NET中强制转换反序列化的接口
我正在尝试建立一个读取器,该读取器将从各个网站接收JSON对象(考虑信息抓取)并将其转换为C#对象。我目前正在使用JSON.NET进行反序列化过程。我遇到的问题是它不知道如何处理类中的接口级属性。所以自然的东西: public IThingy Thing 会产生错误: 无法创建类型为IThingy的实例。类型是接口或抽象类,无法实例化。 相对于Thingy,让它成为IThingy相对重要,因为我正在处理的代码被认为是敏感的,并且单元测试非常重要。对于像Thingy这样的成熟对象,无法为原子测试脚本模拟对象。它们必须是接口。 我已经研究JSON.NET的文档已有一段时间了,而我在此站点上可以找到的与此相关的问题都来自一年多以前。有什么帮助吗? 另外,如果有关系,我的应用程序是用.NET 4.0编写的。
128 c#  .net  json  json.net 

10
使属性反序列化但不使用json.net序列化
我们有一些配置文件,这些文件是通过使用Json.net序列化C#对象而生成的。 我们希望将序列化类的一个属性从简单的枚举属性迁移到类属性。 一种简单的方法是将旧的enum属性保留在类中,并安排Json.net在加载配置时读取此属性,但在下次序列化对象时不再保存它。我们将处理从旧枚举分别生成新类的问题。 是否有任何简单的方法来标记(例如,带有属性)C#对象的属性,以便Json.net仅在序列化时将其忽略,而在反序列化时将其保留?
122 c#  json.net 

3
.Net Core 3.0中IMvcBuilder AddJsonOptions放在哪里?
我刚刚从升级了我的ASP Web API项目。Net core 2.0到3.0。我在用 services.AddMvc() .AddJsonOptions(options =>options.SerializerSettings.ContractResolver = new DefaultContractResolver()); 以前是为了确保序列化JSON的小写字母。 升级到3.0后,出现此错误: 错误CS1061'IMvcBuilder'不包含'AddJsonOptions'的定义,并且找不到可以接受的扩展方法'AddJsonOptions'接受类型为'IMvcBuilder'的第一个参数(是否缺少using指令或程序集引用?) 根据Asp.Net Core 2.2中MvcJsonOptions的AddJsonOptions,Microsoft.AspNetCore.Mvc.Formatters.Json nuget包提供了AddJsonOptions扩展方法。我尝试安装/重新安装此程序,但仍然无法解决该方法。有趣的是,智能感知仅显示Microsoft.AspNetCore.Mvc.Formatters。即使我添加了Json nuget包,当我尝试添加using语句时也使用Xml。 有什么想法吗?该文档为AddJsonOptions只上升到.NET 2.2所以也许是方法已经在3.0赞成一些其他配置机制的被弃用?

5
使用Json.net反序列化JSON对象数组
我尝试使用对以下返回的json使用以下示例结构的API [ { "customer":{ "first_name":"Test", "last_name":"Account", "email":"test1@example.com", "organization":"", "reference":null, "id":3545134, "created_at":"2013-08-06T15:51:15-04:00", "updated_at":"2013-08-06T15:51:15-04:00", "address":"", "address_2":"", "city":"", "state":"", "zip":"", "country":"", "phone":"" } }, { "customer":{ "first_name":"Test", "last_name":"Account2", "email":"test2@example.com", "organization":"", "reference":null, "id":3570462, "created_at":"2013-08-12T11:54:58-04:00", "updated_at":"2013-08-12T11:54:58-04:00", "address":"", "address_2":"", "city":"", "state":"", "zip":"", "country":"", "phone":"" } } ] JSON.net可以与以下结构一起很好地工作 { "customer": { ["field1" : "value", etc...], ["field1" …
118 c#  json.net 

6
从JToken获取可能不存在的价值(最佳做法)
使用Json.NET检索C#中甚至可能不存在的JSON值的最佳实践是什么? 现在,我正在处理一个JSON提供程序,该提供程序返回的JSON有时包含某些键/值对,有时不包含。我一直在使用(可能不正确)此方法来获取我的值(例如获取双精度值的示例): if(null != jToken["width"]) width = double.Parse(jToken["width"].ToString()); else width = 100; 现在可以正常工作,但是当它们很多时很麻烦。我最终写了一个扩展方法,只有在写完它之后,我才想知道我是否是愚蠢的……无论如何,这是扩展方法(我只包含双精度和字符串的情况,但实际上我有很多更多): public static T GetValue<T>(this JToken jToken, string key, T defaultValue = default(T)) { T returnValue = defaultValue; if (jToken[key] != null) { object data = null; string sData = jToken[key].ToString(); Type type = typeof(T); if (type is …
117 c#  json.net 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.