Articles of json.net

Inserir um único object no arquivo json sem rewrite o arquivo inteiro

Estou trabalhando em um método que usa JSON.NET para adicionar um object horse a um database de cavalos formatado em JSON. Uma opção é desserializar o arquivo inteiro em uma lista de cavalos, adicionar o novo cavalo, depois serializar a lista e rewrite todo o arquivo. Eu implementei essa abordagem no código abaixo. // adds […]

JsonPropertyAttribute ignorado na propriedade privada na class derivada

Eu tenho um problema com o Json.Net ao serializar objects derivados, que possuem propriedades privadas. Sth gosta public class Base { [JsonProperty] private string Type { get { return “Base”; } } } public class Inherited : Base { [JsonProperty] private string Type { get { return “Inherited”; } } } Quando eu serializar instâncias […]

Serialização JSON de genéricos

Eu tenho uma class que se parece com isso: public class MyData : IList<Tuple> A ideia é que você tenha uma lista de pares de valores. Simples o suficiente. Mas eu queria que isso fosse serializado de forma que parecesse um array de uma matriz de duplas (ex. double[][] ) ao invés de uma lista […]

JSON.NET Por que adiciona à lista em vez de sobrescrever?

public class MyClass { public List myList = new List { 1337 }; public MyClass() {} } var myClass = JsonConvert.DeserializeObject(“{myList:[1,2,3]}”); Console.WriteLine(string.Join(“,”, myClass.myList.ToArray())); //1337,1,2,3 Por que ele exibe 1337,1,2,3 em vez de 1,2,3? Existe uma maneira / configuração de fazer JSON.NET sobrescrever a Lista em vez de adicionar elementos a ela? Eu preciso de uma […]

Como corretamente serializar tuple como dictionary chave

Eu tenho o seguinte aplicativo que mostra que a parte-chave de um dictionary não é enviada para JsonConverter , mas é chamado ToString() . Isso é um problema para mim, já que não posso desserializar minha string Json . Alguma ideia? class Program { static void Main(string[] args) { var coll = new Dictionary<Tuple, string>(); […]

Manipulando a exceção de referência circular JSON no ASP.NET 5

Então, estou brincando com a API da Web no ASP.NET 5. Em algum momento meu aplicativo parou de funcionar, mostrando apenas a página de erro do IIS “Gateway Incorreto” (eu o executo no IIS Express, por F5). Demorei um pouco para descobrir qual era o problema – introduzi uma referência circular em uma class de […]

Interceptar população da lista para atribuir valores na desserialização

Eu tenho uma class recursiva (hierarquia de tree), que deriva de uma lista, que tem os filhos, e em si, preenchida a partir de desserialização em JSON.NET. A versão TLDR é que eu quero preencher uma variável nos filhos, a partir do pai, em cada nível dessa class onde ela existe, sem usar variables ​​$ […]

Newtonsoft.Json, Populate Dictionary falhou

Eu serializo um dictionary para json por Newtonsoft.json e abaixo: var serializeSettings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All, TypeNameAssemblyFormat = FormatterAssemblyStyle.Full, Formatting = Formatting.Indented }; var serializedObject = JsonConvert.SerializeObject(dic, serializeSettings); esse código gera um json assim: { “$type”: “System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”, “9648af76-7986-4b34-8b2c-97b2345769ef”: “Test” } […]

WebAPI Retornar matriz JSON sem nó raiz

Eu tenho o seguinte código de exemplo em um EmployeeController que cria um par de funcionários, adiciona-los a uma lista de funcionários e, em seguida, retorna a lista de funcionários em uma solicitação get. O JSON retornado do código inclui Funcionários como um nó raiz. Eu preciso retornar um array JSON sem a propriedade Employees […]

Como (de) serializar um XmlException com Newtonsoft JSON?

Este código de amostra: var json = JsonConvert.SerializeObject(new XmlException(“bla”)); var exception = JsonConvert.DeserializeObject(json); lança um InvalidCastException em Newtonsoft.Json.dll: Não é possível converter object do tipo ‘Newtonsoft.Json.Linq.JValue’ para digitar ‘System.String’ com o seguinte rastreamento de pilha: at System.Xml.XmlException..ctor(SerializationInfo info, StreamingContext context) at Void .ctor(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)(Object[] ) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateISerializable(JsonReader reader, JsonISerializableContract contract, JsonProperty member, String id) at […]