Tag: json

将展平的分层数据转换为树形结构的JSON

我有一个C#字典对象,其中包含该文件可用的文件和文件夹的名称。 我想将数据转换为分层树。 以下是数据。 如何将其转换为树形结构的JSON。 我调查了这个例子但是我无法获得所需的输出。 +———————————————–+| | Name | Path |————————————————| | Kitchen supplies | Shopping / Housewares | | Groceries | Shopping / Housewares | | Cleaning supplies | Shopping / Housewares | | Office supplies | Shopping / Housewares | | Retile kitchen | Shopping / Remodeling | | Ceiling | Shopping / […]

JsonConvert.DeserializeObject特殊字符未终止字符串。 预期分隔符:

出于某种原因,当我在我的淘汰模型中有一个特殊字符并将其转换为json对象时,字符串将结束特殊字符所在的位置,并且在反序列化时出现错误: $.ajax({ url: “/Admin/Forms/Convert”, type: “post”, //contentType: “application/json”, dataType: “text”, data: “modelData=” + ko.toJSON(theModel), success: function (data) { // window.open(“/Admin/Forms/DisplayClient”); var win = getFullWindow(‘/Admin/Forms/DisplayClient’); win.open(); }, error: function (xhr, status, msg) { alert(msg); } }); 当我得到这个方法: public void Convert(string modelData) { Form form = JsonConvert.DeserializeObject(modelData); } 我收到一个错误: Unterminated string. Expected delimiter: “. Path ‘Name’, line […]

通过JSON / PHP(base64_encode)从基于图像的C#中解释base 64

所以我能够成功读取图像文件,并将其传递回我的C#应用​​程序,但我无法正确解码。 我通过PHP返回JSON数据(json_encode函数未显示): $imgbinary = fread(fopen($filename, “r”), filesize($filename)); if ( strlen($imgbinary) > 0 ){ return array(“success”=>true, “map”=>base64_encode($imgbinary)); } 然后在C#中我使用Newtonsoft.Json解码字符串(我可以成功读取成功和地图属性),但我无法使用base64解码将图像正确写入文件(或显示)。 我是这样做的: File.WriteAllText(System.Windows.Forms.Application.StartupPath + “\\MyDir\\” + FileName, Base64Decode(FileData)); public string Base64Decode(string data) { byte[] binary = Convert.FromBase64String(data); return Encoding.Default.GetString(binary); } 我在这里想念一些疯狂的东西吗? 真正奇怪的是我解码数据后,文件大小比原始文件大。 (我知道一旦你编码,数据增加了大约33%,奇怪的是,在我解码后,它仍然更大)。 任何帮助/指针将不胜感激!

服务器未返回状态码为400(.net)的JSON

我有一个奇怪的问题,返回400状态代码与json错误。 在我的控制器中,我有类似的东西: if(!ModelState.IsValid) { string[] errors = ModelState.Values .SelectMany(x => x.Errors) .Select(x => x.ErrorMessage).ToArray(); Response.StatusCode = (int)System.Net.HttpStatusCode.BadRequest; return Json(new { success = false, errors = errors }, JsonRequestBehavior.DenyGet); } 这在我的开发机器上工作正常。 我可以在ajax错误方法中得到错误。 但是当我部署到服务器时,服务器不再返回JSON。 我总是得到responseText而不是reponseJSON。 如果我删除Response.StatusCode它工作正常。 这让我相信当我设置Response对象的StatusCode属性时,函数’返回’。 这有发生在其他人身上吗? 有人知道解决方案吗?

C#Web API基于GET请求的XML或JSON

我的config.Routes设置为: config.Routes.MapHttpRoute( name: “DefaultApi”, routeTemplate: “api/{controller}/{id}”, defaults: new { id = RouteParameter.Optional } ); 有了这个,我可以使用: localhost:port/api/products – 获取完整的产品列表 localhost:port/api/products/# – 获取具有给定id的单个产品 基于浏览器,我得到了不同的格式(默认情况下,FireFox和Google Chrome中的XML格式以及Internet Explorer中的JSON格式)。 我主要需要JSON,所以最初我添加了: var json = config.Formatters.JsonFormatter; json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects; config.Formatters.Remove(config.Formatters.XmlFormatter); 所以我的回答总是在JSON中。 在这一点上,一切都是有意义的,我在上面提到的两个GET请求上获得了JSON格式的响应。 然后我偶然发现了这个stackoverflowpost 。 认为根据GET请求为您自己选择要返回的格式是一个很好的function。 但是,当我替换上面提到的config.Routes和JSON-only代码时: config.Routes.MapHttpRoute( name: “API UriPathExtentsion”, routeTemplate: “api/{controller}.{ext}/{id}”, defaults: new { id = RouteParameter.Optional, ext = RouteParameter.Optional } […]

获取淘汰模型中的MVC人员模型书列表(可观察数组)

在淘汰模型中获取MVC模型参数的最佳实践是什么? 1)如果只需要一个参数,可以使用以下命令设置knockout view model属性: this.firstName = @Model.FirstName; 2)如果您在模型中拥有大量属性,则可以执行以下操作: var modelData = function () { return @Html.Raw(Json.Encode(Model)); }(); 然后再用 this.firstName = modelData.FirstName; this.lastName = modelData.LastName; this.phoneNumber = modelData.PhoneNumber; etc. 3)如果你在Person模型中有一些Collection,该怎么办? 从个人模型中获取集合的最佳方法是什么? 例如,Person有FirstName,LastName,PhoneNumber等,并且有一个书籍列表 (每本书都有图块,作者和其他属性)。 我相信你可以使用这样的东西: var booksJSON = @Html.Raw(Json.Encode(Model.Books)); 然后在淘汰人模型中使用: self.books = ko.observableArray(booksJSON); 这只给了书。 但是,如果我想获得有关Person(书籍,包括FirstName,LastName,Phone和一堆属性)的所有信息,那么最好的方法是什么呢? 我可以以某种方式使用Json.Encode为整个Person模型,然后离开那里的一切,包括Person.Books或我应该将它分成多个Json.Encode-s ??

如何在C#.NET(win7手机)中使用’DataContractJsonSerializer’读入’嵌套’Json文件?

我有一个问题,如果我的json文件看起来像这样 {“Numbers”:“45387”,“Words”:“space buckets”} 我可以读得很好,但如果它看起来像这样: {“Main”:{“Numbers”:“45387”,“Words”:“space buckets”}, “Something”:{“Numbers”:“12345”,“Words”:“Kransky”}} 我没有收到任何信息。 我不知道如何在Main和Something之间切换! 使用此代码加载带有此“嵌套”信息的JSON, var ser = new DataContractJsonSerializer(typeof(myInfo)); var info = (myInfo)ser.ReadObject(e.Result); //用于保存我的信息的类 [DataContract] public class myInfo { [DataMember(Name=”Numbers”)] public int number { get; set; } [DataMember(Name=”Words”)] public string words { get; set; } } 导致类返回空。 我已经尝试将组名添加到DataContract,例如。 [DataContract,Name =“Main”]但这仍然导致类值为空。 我也尝试将“main”添加到序列化器overloader,例如。 var ser = new DataContractJsonSerializer(typeof(myInfo),“Main”); 这会导致错误:期望元素’Main’来自命名空间”..遇到’Element’,名称为’root’,命名空间”。 我更喜欢使用提供的json阅读器。 我已经研究过json.NET,但是发现编写json和sparse有关读取信息的文档很重要。 […]

XML和JSON的WCF WebHttp服务根据端点地址选择序列化程序

我正在尝试创建一个WCF RESTful Web服务,它将返回XML和JSON 。 问题是它正在工作,但对于XML序列化,它忽略了XML属性。 正如您在端点配置中看到的,我有两个地址,如xml和json 。 所以我访问的url如下 – 对于XML – http://localhost:59310/TestService.svc/xml/GetResponse 对于JSON – http://localhost:59310/TestService.svc/json/GetResponse 现在我想在访问JSON url时使用DataContractFormat并使用XmlSerializerFormat for XML url。 我怎样才能做到这一点。 请帮忙。 这是具有XML属性的响应类。 namespace WCFMultiFormatTest { [XmlRoot(ElementName = “RESPONSE”)] public class Response { [XmlAttribute(AttributeName = “MESSAGE”)] public string Message { get; set; } } [XmlRoot(ElementName = “TEST”)] public class Root { [XmlElement(ElementName = “RESPONSE”)] public […]

如何实现json的自定义序列化,将类型附加到属性名称?

我正在尝试使用newtonsoft.json将对象序列化为JSON。 唯一的事情是我不能将json类型附加到字段名称。 考虑这个例子: var item = new { value = “value”, data = new []{“str”, “str”}, b = true }; 我想将其转换为 { “value.string” : “value”, “data.array” : [“str”, “str”], “b.bool” : true } 或类似的东西。 我们的想法是将json类型(不是c#类型)附加到json字段。 我不想附加C#类型的原因是因为它可能很复杂(有时类型是匿名的,有时它是IEnumerable,等等) 我见过许多可以转换为C#类型的解决方案,例如实现IContractResolver。 不幸的是,这不适用于这种情况。 我也不知道我之前会转换的类型。 我能找到的最接近的是 public JObject Convert(JObject data) { var queue = new Queue(); foreach (var child in data.Children()) […]

asp.net mvc4将无法正确反序列化并从json绑定Dictionary <string,List >

JSON.NET反序列化很好,但无论mvc用于控制器参数绑定barfs很难。 我可以做任何其他工作吗? 位: public partial class Question { public Dictionary<string, List> TemporaryExtendedProperties { get; set; } } 和控制器方法 [HttpPost] public JsonResult SaveQuestions(Question[] questions) { var z = JsonConvert.DeserializeObject( “{‘Options’:[{‘PropKey’:’asdfasd’,’PropVal’:’asdfalkj’},{‘PropKey’:’fdsafdsafasdfas’,’PropVal’:’fdsafdas’}]}”, typeof (Dictionary<string, List>)) as Dictionary<string, List>; //this deserializes perfectly. z is exactly what I want it to be //BUT, questions is all wrong. See pic below […]