Tag: json

使用C#反序列化JSON

在尝试在C#中反序列化JSON时,发现在获取信息方面存在一些困难。 我有以JSON格式返回的Google自定义搜索结果。 我只想查看我的步骤并确定顺序以尝试反序列化它。 这是正确的吗? 我需要创建匹配JSON格式的类。 有点像创建模式文件。 使用JavaScriptSerializer()类和deserialize方法来提取相关位。 我认为我将遇到的一个问题是我不需要返回所有数据,只需要html链接。 我怎样才能做到这一点? UPDATE 我已使用以下JSON代码段和C#代码更新了我的问题。 我想将字符串’links’输出到控制台,但它似乎没有工作。 我想我错误地定义了我的课程? Google自定义搜索中的JSON handleResponse({ “kind”: “customsearch#search”, “url”: { “type”: “application/json”, “template”: “https://www.googleapis.com/customsearch/v1?q\u003d{searchTerms}&num\u003d{count?}&start\u003d{startIndex?}&hr\u003d{language?}&safe\u003d{safe?}&cx\u003d{cx?}&cref\u003d{cref?}&sort\u003d{sort?}&alt\u003djson” }, “queries”: { “nextPage”: [ { “title”: “Google Custom Search – lectures”, “totalResults”: 9590000, “searchTerms”: “lectures”, “count”: 1, “startIndex”: 2, “inputEncoding”: “utf8”, “outputEncoding”: “utf8”, “cx”: “017576662512468239146:omuauf_lfve” } ], “request”: [ { “title”: […]

如何将JSON映射到C#对象

我有理解如何实现这一点的问题,基本上我们有一个API,用户发送格式的json :(请原谅代码,如果不完美,但你明白) {“Profile”: [{ “Name”:”Joe”, “Last :”Doe”, “Client”: { “ClientId”:”1″, “Product”:”Apple”, “Message”:”Peter likes apples” }, “Date”:”2012-02-14″ }]} 好吧不确定我是否正确格式化了JSON,但现在这是我的问题,我有一个名为Profile的类,参数名称为Last,一个对象作为其成员之一,名为Client,属性为Date。 像这样的东西: public class Profile { public string Name {get; set;} public string Last {get; set;} public Client client {get; set;} public DateTime dDate {get; set;} } 所以基本上,我不知道如何抓住JSON,然后将其映射到我的对象…任何“帮助”我理解的帮助将非常感激。 问候

在C#中解析Jsonrestapi响应

我试图使用C#从rest api json响应中提取值。 我有以下代码: client.BaseUrl = “https://api.cloud.appcelerator.com”; request.Resource = “/v1/chats/create.json?key=” + cac.AppCode.ToString(); request.Method = Method.POST; request.AddUrlSegment(“appkey”, “key”); var response = client.Execute(request); 在“响应”消息中,我得到了一个json内容如下: { “meta”: { “code”: 200, “status”: “ok”, “method_name”: “createChatMessage” }, “response”: { “chats”: [ { “id”: “521cfcd840926a0b3500449e”, “created_at”: “2013-08-27T19:24:08+0000”, “updated_at”: “2013-08-27T19:24:08+0000”, “message”: ” join to the chat group, welcome …”, “from”: { “id”: […]

使用每行键将DataTable转换为JSON

我认为以下是一个非常常见的任务,并假设有一个简单的解决方案,但我找不到一个。 如果我有以下结构的数据表。 ID Name Active ID1 John TRUE ID2 Bill FALSE 我想将其序列化为JSON对象,其中ID列是JSON对象中的节点,如: [ { “ID1”: { “Name”: “John”, “Active”: “True” }, “ID2”: { “Name”: “Bill”, “Active”: “False” } } ] 我查看了JSON.NET但无法使其工作。 编辑:我正在使用C#

json从遗留属性名称反序列化

如何设置Newtonsoft.Json以使用旧成员名称反序列化对象,但使用当前成员名称对其进行序列化? 这是一个需要序列化和反序列化的示例对象。 我给了一个属性属性,其中包含过去可能已经序列化的名称列表。 [DataContract] class TestObject { [LegacyDataMemberNames(“alpha”, “omega”)] [DataMember(Name = “a”)] public int A { get; set; } } 我想json序列化始终使用名称“a”,但能够从任何遗留名称反序列化为一个属性,包括“alpha”和“omega”以及当前名称“a”

如何通过调用JsonConvert.DeserializeObject并禁用应用于基类型的JsonConverter?

编辑:澄清问题: 我已经覆盖了JsonConverter的基类型(通过将[JsonConverter(typeof(TConverter))]到超类中,但是当直接反序列化子类型时,我想使用STANDARD序列化(即没有自定义转换器)来反序列化我的派生宾语。 如何在deserialize方法中指定STANDARD序列化,就像我没有覆盖JsonConverter一样? 我使用弹性搜索,不能使用我自定义的JsonConverter实现调用JsonConvert.DeserializeObject,并且必须依赖Elastic的属性才能使用我的转换器。 但是,使用此转换器作为属性似乎也会影响所有子类,但我只是希望它们使用标准转换器,因此我不必为许多实现中的每一个实现JsonConverter。 这是我希望它看起来的类/逻辑: [Route(“test”)] [HttpPost] public HttpResponseMessage Test([FromBody] JToken json) { var res = json.ToObject(); // I want an object of ProductImpl type here return Request.CreateResponse(res); } [JsonConverter(typeof(JsonProductConverted))] public abstract class Product { } public class ProductImpl : Product { } public class JsonProductConverted : JsonConverter { public override void WriteJson(JsonWriter writer, […]

如何从JSON字符串获取深层嵌套属性?

如何使用JSON.NET从JSON中获取“myThings”数组,如下所示? 例1: { “z”: { “a”: 1, “b”: 2 }, “something”: { “y”: [1, 2], “somethingElse”: { “1234”: { “foo”: “bar”, “myThings”: [{ “name”: “bob”, “age”: 3 }, { “name”: “bob”, “age”: 3 }] } } } } 例2: { “z”: { “a”: 1, “b”: 2 }, “something”: { “y”: [1, 2], “somethingElse”: { “7890”: […]

JSON反序列化 – 使用JSON.NET将数组索引映射到属性

我想将二维数组反序列化为.net对象的集合。 原因是,我的用户可以更容易地在输入文件中使用数组语法。 所以我只想将数组的索引映射到我的目标类型的特定属性。 EG用: [ [“John”, “Smith”, “23”], [“Paula”, “Martin”, “54] ] 我会得到一个人的两个实例: public class Person { public string First {get;set;} public string Last {get;set;} public string Age {get;set;} } 其中内部数组的索引0映射到First ,索引1映射到Last ,索引2映射到Age ; 有没有办法扩展Json.NET,以便我可以在反序列化期间进行映射,以便隐藏实现细节? 我一直在玩一个自定义的JsonConverter但我没有找到关于如何使用它的更多信息。 编辑:具体来说,我不确定JsonConverter是否正确使用,我无法弄清楚如何实现CanConvert以及如何使用传递给ReadJson方法的参数。

使用JSON中的冒号解析字段名称

如果json字段包含冒号(:),我们如何解析? 像这样: { “dc:creator”:”Jordan, Micheal”, “element:publicationName”:”Applied Ergonomics”, “element:issn”:”2839749823″ } 事实上,我想知道如何使用像restsharp这样的库进行映射?

序列化属性,但不要在Json.Net中反序列化属性

虽然我发现了许多方法来反序列化特定属性,同时阻止它们序列化,但我正在寻找相反的行为。 我发现有很多问题要求反过来: 使用json.net进行属性反序列化但不能序列化 我可以指示Json.NET反序列化,但不能序列化特定属性吗? JSON.Net – 仅在序列化时使用JsonIgnoreAttribute(但在反序列化时不使用) 如何序列化特定属性,但阻止它反序列化回POCO? 是否有可用于装饰特定属性的属性? 基本上我正在寻找与反序列化的ShouldSerialize *方法相当的方法。 我知道我可以写一个自定义转换器,但这似乎有点矫枉过正。 编辑: 这里有更多的背景。 这背后的原因是我的class级看起来像: public class Address : IAddress { /// /// Gets or sets the two character country code /// [JsonProperty(“countryCode”)] [Required] public string CountryCode { get; set; } /// /// Gets or sets the country code, and province or state code delimited […]