Tag: json

如何使用json.net构建序列化的对象层次结构?

我正在尝试正确编写代码来构建数据结构以序列化为json。 我正在使用json.net。 我不想创建一堆类来保存这些数据,因为我认为应该有一些类已经在json.net中执行此操作 我已经在一系列嵌套循环中获得了所需的所有数据,现在我只想在它上运行JsonConvert.SerializeObject之前将它们添加到对象层次结构中。 我已经尝试过这样的代码,但似乎没有用 JArray container = new JArray(); container.Add(new JObject(new JProperty(“name”, “Client1”), new JProperty(“projects”, new JArray()))); container[0].AddAfterSelf(new JObject(new JProperty(“projects”, new JArray()))); container[1].AddAfterSelf(new JObject(new JProperty(“projects”, “Project2”))); container[1].AddAfterSelf(new JObject(new JProperty(“projects”, “Project3”))); container.Add(new JProperty(“name”, “Client2”)); var test = JsonConvert.SerializeObject(container); 问题是当我使用[i]时。 或者ElementAt(i)访问结构中的某个地方,或者缺少.Add()或者没有.ElementAt。 如何逐步完成数据结构以使下面的输出良好,或者我是否必须为所有这些创建自己的容器类? 这是我想要的数据格式。 [ { “name”: “student1”, “projects”: [ { “name”: “Project1”, “tasks”: [ { “name”: […]

JSON.NET:如何根据父(持有者)对象值反序列化接口属性?

我有这样的课程 class Holder { public int ObjType { get; set; } public List Objects { get; set; } } abstract class Base { // … doesn’t matter } class DerivedType1 : Base { // … doesn’t matter } class DerivedType2 : Base { // … doesn’t matter } 使用WebAPI我想要接收对象Holder并正确反序列化它。 基于ObjType值,我需要将Objects属性反序列化为List ( ObjType == 1 )或List […]

JSON和ASP.NET MVC

如何通过AJAX调用使用ASP.NET MVC将序列化的JSON对象返回给客户端?

ASP.NET Core appsettings.json在代码中更新

我目前正在使用asp.net core v1.1开发项目,在我的appsettings.json中我有: “AppSettings”: { “AzureConnectionKey”: “***”, “AzureContainerName”: “**”, “NumberOfTicks”: 621355968000000000, “NumberOfMiliseconds”: 10000, “SelectedPvInstalationIds”: [ 13, 137, 126, 121, 68, 29 ], “MaxPvPower”: 160, “MaxWindPower”: 5745.35 }, 我也有用来存储它们的类: public class AppSettings { public string AzureConnectionKey { get; set; } public string AzureContainerName { get; set; } public long NumberOfTicks { get; set; } public long […]

使用newtonsoft或restsharp反序列化json字符串

我有一个字符串,它来自一个Json格式的数据库。 我试图用以下方法反序列化它: RestSharp.Deserializers.JsonDeserializer deserial = new JsonDeserializer(); var x = deserial .Deserialize(myStringFromDB) 但.Deserialize函数需要一个IRestResponse 有没有办法使用RestSharp来反序列化原始字符串?

将JSON字符串序列化为动态对象

好的,如果我的术语有误,请原谅我。 我试图做以下事情。 从URL获取JSON字符串 将所述字符串解析为一个对象。 通常对我来说这很容易。 通常,JSON对象是静态名称。 出现问题的地方是子json对象因人而异。 如果您更改库存,它们也会发生变化。 现在,我需要能够将它放入一个对象中,然后查询它(不一定是linq,而是随意拉取数据)。 有没有人有任何信息? 我试图创建一个动态对象(如此处所示将JSON反序列化为C#动态对象? )但它对我不起作用。 该链接是否真的符合我的目的,我是否只是错误地实现了它? 以下是JSON的转储: http : //chopapp.com/#ro46jfay 谢谢你的帮助。

JSON.Net自定义合同序列化和集合

我正在尝试创建一个IContractResolver来简化我在WebApi项目上的安全处理。 我在尝试什么: 我想基于一组动态条件序列化某些对象/属性(例如,调用端点的用户的角色)。 所以我实现了一个在Interface的CreateProperty覆盖中检查的自定义属性,并将ShouldSerialize函数设置为我自己的逻辑。 我现在的问题是,是否有可能有条件地序列化某个列表中的完整对象? 而不是在预处理步骤中过滤列表(这很容易出错,如果我更改了我的对象),我希望它由当前的ContractResolver递归处理。 在某种程度上,我试图得到这样的东西: override void CreateObject(JSONObject ob){ if ( ob.DeclaringType == MyType) { ob.ShouldSerialize = instance => {[…] }; //Custom Logic } } 我错过了覆盖,这根本不可能吗? 有没有更好的方法来实际做到这一点,而我不必“预先解析”我的所有价值观?

如何将json属性反序列化为类属性?

我的JSON文件 [ { “amount”:”1000000.0″, “check_number”:1, “payment_number”:5, “attachments”:[ { “id”:5324, “url”:”http://www.example.com/”, “filename”:”january_receipt_copy.jpg” } ] } ] 我的class级档案 public class Attachment { public int id { get; set; } public string url { get; set; } public string filename { get; set; } } public class AccountDetail { public string amount { get; set; } public int […]

在反序列化时如何忽略JSON对象数组中的空白数组?

我正在使用Json.NET反序列化JSON。 如何在反序列化期间忽略在对象数组内意外发生的空白数组 ? 我在本网站http://json.parser.online.fr/上测试了来自第三方的以下JSON,确认其格式正确: { “total_events”: 3551574, “json.appID”: [ { “count”: 3551024, “term”: 1 }, { “count”: 256, “term”: 2 }, [] /* <—– I need to ignore this empty array */ ], "unique_field_count": 2 } 我想将它反序列化为以下模型: public class RootObject { [JsonProperty(“total_events”)] public int TotalEvents { get; set; } [JsonProperty(“json.appID”)] public List AppIds { get; […]

C# – JObject.Parse – 无效的JSON

我正在使用返回JSON的API。 我有一个调用api的方法,并解析所需节点的JSON响应。 到目前为止,一切都运行正常,除了最新的JSON响应似乎格式不正确。 其他回复如下: { “Keyword”:”\”marhope\””, “TermKey”:null, “Customers”:[ { “Memberships”:[ ], “CompanyId”:0, “ObjectId”:112974, “ObjectType”:”Customer”, } ] } 我使用JObject.Parse按名称返回适当的节点。 最新的JSON响应如下: { [ { “AnimalId”:9079117, “SpeciesCode”:”XX”, } ] } 如您所见,没有“名称”,JSON稍微无效。 我怎么解析这个。 对于第一个例子,我使用下面的代码,但现在JSON没有“名称”,我不知道如何处理这个问题,想法? JObject results = JObject.Parse(csr.SearchCustomer(1, 1, 870, term)); foreach (var resp in results[“Customers”]) { string obj = (string)resp[“CompanyId”]; }