2012-06-15 21 views
6

Necesito crear un json personalizado para la biblioteca the jit. ¿Debo usar lógica adicional de C# o de alguna manera extender el JsonSerializer? JSON debe ser como este ->JIT. Mejor manera de serializar a json

var json = { 
    "children": [ 
{ 
    "children": [ 
    { 
     "children": [], 
     "data": { 
      "playcount": "276", 
      "$color": "#8E7032", 
      "image": "http://userserve-ak.last.fm/serve/300x300/11403219.jpg", 
      "$area": 276 
     }, 
     "id": "album-Thirteenth Step", 
     "name": "Thirteenth Step" 
    } 
}] 

}

+0

Has probado esto - http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx –

+1

sí, pero necesito más personalizada json – Alexandr

Respuesta

4

Usando Json.Net

public void Test() 
{ 
    Node root = new Node(); 
    Node child = new Node(); 
    Data data = new Data() { Area = 276, Color = "#8E7032", PlayCount = "276", Image = "http://userserve-ak.last.fm/serve/300x300/11403219.jpg" }; 
    Node grandChild = new Node() { Id = "album-Thirteenth Step", Name = "Thirteenth Step", Data = data }; 

    root.Children.Add(child); 
    child.Children.Add(grandChild); 

    var json = JsonConvert.SerializeObject(
           root, 
           new JsonSerializerSettings() { 
            NullValueHandling= NullValueHandling.Ignore, 
            Formatting= Newtonsoft.Json.Formatting.Indented 
           }); 
} 

public class Node 
{ 
    [JsonProperty("children")] 
    public List<Node> Children = new List<Node>(); 

    [JsonProperty("data")] 
    public Data Data; 

    [JsonProperty("id")] 
    public string Id; 

    [JsonProperty("name")] 
    public string Name; 
} 

public class Data 
{ 
    [JsonProperty("playcount")] 
    public string PlayCount; 

    [JsonProperty("$color")] 
    public string Color; 

    [JsonProperty("image")] 
    public string Image; 

    [JsonProperty("$area")] 
    public int Area; 
} 
1

¿Ha embargo sobre Json.net?

http://json.codeplex.com/

Por lo menos usted tendrá un buen nivel de sala de personalización + un serializador mejor

1

json - la mejor herramienta para trabajar con JSON

+1

¿Por qué es "el mejor"? ¿Puedes proporcionar algún contexto? ¿O es mejor para * todos los casos de uso? –

+0

@ EmilVikström según su propio sitio web es ... – iwein

+0

iwein, ¿Dónde encontraste mi propio sitio web? –

Cuestiones relacionadas