Tag: json

C#在JSON字符串的开头和结尾添加双引号会导致服务器解码错误

我正在编写ac#机制,使用Json将文件上传到Rails服务器。 在进入文件部分之前,我只是想发布到服务器,并且似乎在到达服务器的json字符串有一些问题。 我可能做错了什么? 我已经尝试了两种不同的序列化字符串的方法,甚至加载已经序列化的字符串…… 我想知道它是否与字符串的开头和结尾处的双引号有关,显然是发送到服务器,以及如何从请求中删除它们(没有周围的引号并使用来自WizTools.org的RestClient,一切顺利很好……): MultiJson::DecodeError (757: unexpected token at ‘”{\”receipt\”:{\”total\”:100.0,\”tag_number\”:\”xxxxx\”,\”ispaperduplicate\”:true},\”machine\”:{\”serial_number\”:\”111111\”,\”safe_token\”:\”1Y321a\”}}”‘) 我的c#代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using RestSharp; using System.Web.Script.Serialization; using Newtonsoft.Json; namespace RonRestClient { class templateRequest { public Receipt receipt; public class Receipt { public float total; public String tag_number; public bool […]

我可以自动为REST WCF服务生成服务引用吗?

我可以看到SOAP WCF over REST(json)wcf的唯一参数是,一旦我的服务被创建,我就可以在visual studio中添加一个引用,我可以为我和一个客户端类添加一个强类型类的负载可以通过我所有的网络方式调用。 据我所知,它甚至设置了web.config。 但是当我公开REST(json)服务时,我仍然得到一个WSDL。 所以我想知道还有办法自动构建我的引用吗?

如何使用JSON.Net将System.Drawing.Size序列化/序列化为对象?

我完全不知道怎么做。 我使用的示例类: class MyClass { private Size _size = new Size(0, 0); [DataMember] public Size Size { get { return _size; } set { _size = value; } } } 这被序列化为{size: “0, 0”} 。 我需要的是{size: {width: 0, height: 0}} 。 任何帮助表示赞赏,谢谢。

在WP7中反序列化JSON

我有这个JSON,我试图在Windows Phone上阅读。 我一直在玩DataContractJsonSerializer和Json.NET,但运气不好,特别是阅读每个’条目’: {“lastUpdated”:”16:12″,”filterOut”:[],”people”: [{“ID”:”x”,”Name”:”x”,”Age”:”x”},{“ID”:”x”,”Name”:”x”,”Age”:”x”},{“ID”:”x”,”Name”:”x”,”Age”:”x”}], “serviceDisruptions”: { “infoMessages”: [“blah blah text”], “importantMessages”: [], “criticalMessages”: [] } } 我所关心的只是人物部分的条目。 基本上我需要读取并遍历条目(包含ID,Name,Age值)并将它们添加到Collection或类中。 (之后我填充了一个列表框。) 任何指针赞赏。

将JSON反序列化为字符串数组

我刚刚开始涉足C#,现在我已经对JSON反序列化进行了一段时间的讨论。 我正在使用Newtonsoft.Json库。 我期待只是一个字典数组的json响应 [{“id”:”669″,”content”:” testing”,”comments”:””,”ups”:”0″,”downs”:”0″}, {“id”:”482″,”content”:” test2″,”comments”:””,”ups”:”0″,”downs”:”0″}] 现在我有:(注意:下载只是一个包含json字符串的字符串) string[] arr = JsonConvert.DeserializeObject(download); 我尝试了很多不同的方法,每次都失败了。 是否有解析此类json的标准方法?

在返回json’d数据时卸载“急切加载”属性导致问题

希望标题有意义,我会尽力描述我的问题。 我目前正在开发ASP.NET Web API。 在我的“公司”控制器中,我有一个GetCompany()动作。 /// /// Gets the ‘Authorization-Token’ request header and finds the company with the /// matching decrypted token from the database, returns it; if null, returns 404 /// /// Matching company for token passed in request or 404 if null [HttpGet][ResponseType(typeof(Company))] [Route(“api/company/”)] public HttpResponseMessage GetCompany() { string token = Request.Headers.GetValues(“Authorization-Token”).First(); ICollection […]

反序列化包含与关键字冲突的属性的JSON响应

有一个我无法控制的API,但我需要使用C#消耗它的输出,最好使用JSON.Net。 这是一个示例响应: [ { “media_id”: 36867, “explicit”: 0 } ] 我曾计划过这样的课程: class Media { public int media_id; public int explicit; } 并反序列化: var l = JsonConvert.DeserializeObject<List>(s); 不幸的是,“explicit”是一个C#关键字,因此无法编译。 我的下一个猜测是修改类: class Media { public int media_id; public int explicit_; } …并以某种方式将响应属性映射到C#属性。 我该怎么做,或者我是否完全以错误的方式行事? 如果没有这个,我可以明白忽略响应中的“明确”,如果有办法做到这一点?

将JSON日期信息解析为C#DateTime

我有一个返回CLR对象的WCF服务。 该对象定义如下: [DataContract] public class Person { [DataMember] public string FullName { get { return fullName; } set { id = fullName; } } private string fullName = string.Empty; [DataMember] public DateTime BirthDate { get { return birthDate; } set { birthDate = value; } } } 正在创建此对象的实例并从我的WCF服务返回。 此服务如下所示: [OperationContract] [WebGet(UriTemplate = “/GetPersonByID/{id}”, ResponseFormat = […]

如何在Asp.net Web API中使用特定的CultureInfo

我最近在现有的VS桌面应用程序中添加了WEB API,一切正常,直到昨天我必须添加一个带有三个参数的GET方法,其中一个是Date。 好吧,起初我认为那将是一块蛋糕,但令我惊讶的是,我注意到当我在安装应用程序的服务器上发送2014/07/09(7月9日)时,它被视为2014年/ 09/07(9月7日)因此我所有的比较都没有奏效。 我尝试过从GET方法更改为POST方法,在服务器上更改区域和语言选项设置,将日期作为字符串传递,使用字符串的部分在服务器上创建Datetime对象。 不幸的是他们都没有工作。 然后我记得这个桌面应用程序在其WCF项目上有一些方法(我现在传递给web API),它完全没有问题地传递日期。 查看代码一段时间后,我发现他们在使用日期的WCF项目的每个类中使用了类似的东西: Imports System.Globalization Imports System.Security.Permissions Imports System.Threading Public Class ServicioRemotoVentas Implements IServicioRemotoVentas Public Sub New() MyBase.New() Thread.CurrentThread.CurrentCulture = New CultureInfo(“es-PE”, False) End Sub 当然这个Thread.CurrentThread.CurrentCulture = New CultureInfo(“es-PE”,False)必须存在。 现在我想知道你以前是否在Web API中使用过类似的东西? 如果是这样,你如何以及在哪里放置这样的配置。 这些是我电脑上的设置: 这些是服务器设置: 我几乎忘了提到我使用这个格式yyyy / M / d以及使用json的所有其他参数传递所有日期。 是否可能在Web API中对字符串进行反序列化时,这是使用系统日期格式完成的,因为我没有指定要使用的文化信息? 或者在尝试序列化/反序列化日期时可能是Json错误? 与往常一样,您可以提供的任何建议或资源将不胜感激。

检测c#中两个json文件之间的差异

例如,如果我有以下json文本: object1{ field1: value1; field2: value2; field3: value3; } object1{ field1: value1; field2: newvalue2; field3: value3; } 我需要在c#中读取文件并显示差异。 即它可以返回以下对象: differences { object1: { field: field2, old_value: value2, new_value: newvalue2} } 是否有一些API或建议来做到这一点?