Tag: json

无法反序列化当前的JSON对象(例如{“name”:“value”})

这是我的JSON数据 { “logInResult”: [ { “Name”: “yogesh singh”, “cityName”: “”, “img”: “DefaultImage/D_Vp_Men.png”, “usrId”: “374” } ] } 这是我的代码 public async Task Index() { HttpClient webClient1 = new HttpClient(); Uri uri = new Uri(“http://m.vinipost.com/service/userprofile.svc/logIn?loginId=thyschauhan@gmail.com&pass=12345”); HttpResponseMessage response1; response1 = await webClient1.GetAsync(uri); var jsonString = await response1.Content.ReadAsStringAsync(); var _Data = JsonConvert.DeserializeObject<List>(jsonString); foreach (JClass Student in _Data) { ViewBag.Message […]

嵌套的Json String到DataTable

我需要将以下Json字符串转换为DataTable。 { “pnr”:”1234567890″, “train_num”:”12311″, “train_name”:”HWH DLIKLK MAI”, “doj”:”23-12-2013″, “from_station”: { “code”:”DLI”, “name”:”Delhi” }, “to_station”: { “code”:”KLK”, “name”:”Kalka” } } 在DataTable中我需要显示 train_num train_name doj from_station(name only) to_station(name only) 我到现在所拥有的是, public class Train { public string train_num { get; set; } public string train_name { get; set; } public string doj { get; set; } public from_station […]

正确的方法来处理JSON字符串中的&符号发送到REST Web服务

好, 我正在使用System.Runtime.Serialization和DataContractJsonSerialization 。 问题是在请求中我发送了一个带有&字符的属性值。 说, AT&T ,我收到错误的回复: Invalid JSON Data 。 我认为转义将在库内完成,但现在我看到序列化没有触及&符号&字符。 是的,对于JSON格式,这是有效的。 但是这对我的POST请求来说是一个问题,因为我需要将它发送到一个服务器,如果包含一个&符号会响应错误,因此我在这里。 HttpUtility.HtmlEncode位于System.Web库中,因此可以使用Uri.EscapeUriString 。 我这样做是为了尝试,但无论如何,没有它,所有请求都正常工作,除了一个&符号值。 编辑: HttpUtility类移植到Windows Phone SDK,但编码字符串的首选方法仍然是Uri.EscapeUriString 。 首先想到的是弄脏并开始更换会导致服务器出现问题的特殊字符,但是,我想知道,我应该做的另一个解决方案是,它是否有效且“正确”? 我应该告诉我使用 // Convert the string into a byte array. byte[] postBytes = Encoding.UTF8.GetBytes(data); 将JSON转换为byte[]并写入Stream 。 和, request.ContentType = “application/x-www-form-urlencoded”; 作为WebRequest.ContentType 。 那么,我是不是因为某种原因而搞砸了? 谢谢。

Json字符串反序列化为对象的数组列表

请帮忙! 在反序列化时出现此错误: 无法将“System.String”类型的对象转换为“System.Collections.Generic.List”类型 来自客户端的JSON字符串: “\”[{\\“id \\”:\\“18_0_2_0 \\”,\\“ans \\”:\\“您可以输入自由文本代替* \\”},{\\“ id \\“:\\”23_1_3_1 \\“,\\”ans \\“:\\”刷新按钮\\“},{\\”id \\“:\\”11_2_1_2 \\“,\ \ “ANS \\”:\\ “假\\”}] \ “” 编辑:未转义(见评论): [{“id”:“18_0_2_0”,“ans”:“您可以输入自由文字代替* ”},{“id”:“11_2_1_2”,“ans”:“False”}] JavaScriptSerializer serializer = new JavaScriptSerializer(); List ListAnswers = serializer.Deserialize<List>(str); [Serializable] public class RawAnswer { public string QuestionID { get; set; } public string Answer { get; set; } public RawAnswer() { […]

CamelCase JSON WebAPI子对象(嵌套对象,子对象)

我正在创建一个带有子项(嵌套对象)的复杂对象,以便从我的web api控制器返回。 该对象包含其他对象类型的列表。 列表中的这些子对象类型遵循.NET中使用的pascal大小写。 var persons = peopleLookup.Values; var users = userLookup.Values; var roles = rolesLookup.Values; var groups = groupLookup.Values; var roleAssignments = roleAssignmentLookup.Values; var groupMembers = groupMemberLookup.Values; return new { persons, users, roles, roleAssignments, groups, groupMembers }; 我的问题是WebAPI没有驼峰的子项的每个属性。 例如,人员列表中的第一个人应该具有id,name的属性,而不是Id,Name的.NET pascal案例。 同样适用于所有其他子项。

如何设置ASP.NET API / AngularJS项目

我正在开始自己的Angular Web应用程序。 我有使用c#和angular进行编码的经验,但我从来没有设置过我自己的项目/解决方案。 在这种情况下,我想设置一个ASP.NET Web API,它将以JSON方式与Angular SPA前端通信(尽管它应该与前端无关,任何说JSON的应用程序都应该能够与它通信)。 另外,我听说过关于grunt的好东西,所以我想将它合并到项目中(至少要编译LESS并缩小和组合我的角度文件)。 我正在与visual studio professional 2013合作。我首先创建了一个Web API项目并下载了WebEssentials插件。 我对如何继续这里感到有点困惑。 我应该将我的角度分成同一个解决方案中的单独项目吗? 我如何包括咕噜声? 如何在visual studio的上下文中使用grunt将我的angular文件包含在index.html文件中? 该项目附带一个Scripts文件夹和一个Views文件夹。 我知道最好按function构造角度文件,以便将控制器和视图放在一起。 我应该在脚本文件夹中包含我的观点吗? 这对我的构建过程有何影响? 我意识到这些可能是非常幼稚的问题。 请耐心等待,在谈到这些任务时,我是一个完全的初学者。 我过去所做的一切基本上都是代码。

将JS Array = {}发送到C#(WebMethod)

实际上我在JS端声明了一个数组,如下所示: var benefArray = {}; var benefCount = 0; var benefNome = $(‘#txtBenefNome’).val(); var benefDataNasc = $(‘#txtBenefDataNasc’).val(); var benefGrauParent = $(‘#txtBenefGrauParent’).val(); benefCount++; benefArray[benefCount] = new Array(benefNome, benefDataNasc, benefGrauParent); //Ajax Sender function sendAjax(url, parametros, sucesso) { $.ajax({ type: “POST”, url: url, data: parametros, contentType: “application/json; charset=utf-8”, dataType: “json”, success: sucesso }); }; sendAjax(“Client.aspx/AddClient”, “{benefArray: \”” + […]

使用EF和WebApi将父/子对象序列化

我在entity framework中有以下模型: public class Customer { [XmlIgnore] public virtual ICollection Children { get; set; } public string Name { get; set; } } 现在我尝试使用web api序列化它: public class CustomerController:ApiController { public HttpResponseMessage GetAll() { using (var tc = new DataContext()) { List allCustomers = tc.Customers.ToList(); return Request.CreateResponse(HttpStatusCode.OK, allCustomers); } } } 当我这样做并使用POST调用该方法时,我收到以下错误: ‘ObjectContent`1’类型无法序列化内容类型’application / json的响应主体; 字符集= […]

将带有撇号的json值发送到webservice时出现无效的对象错误

我试图将一个json对象发送到Web服务,以反序列化为自定义(LineItemWithDetails)对象。 当json中的任何地方都有apstrophes传递给webservice时,我得到以下错误。 在这种情况下,它是“BudgetJustification”。 我不知道我应该在这做什么。 $.ajax({ type: “POST”, url: baseUrl + “/WebService/BudgetGrid.asmx/SaveLineItemDetails”, data: “{details: ‘” + JSON.stringify(_lineItemObj) + “‘, categoryId: ” + _lineItemObj.LineItem.CategoryID + “, lineItemId: ” + _lineItemObj.LineItem.ID + ” }”, contentType: “application/json; charset=utf-8”, dataType: “json”, success: function (response) { }, error: function (response) { ShowError(response.responseText); } }); [WebMethod(true)] public string SaveLineItemDetails(string details, int categoryId, […]

使用catch all dictionary属性将json序列化为一个对象

我想使用JSON.net反序列化为对象,但将未映射的属性放在字典属性中。 可能吗? 比如给json, {one:1,two:2,three:3} 和c#类: public class Mapped { public int One {get; set;} public int Two {get; set;} public Dictionary TheRest {get; set;} } JSON.NET可以反序列化为值为1 = 1,2 = 1的实例,TheRest = Dictionary {{“three,3}}