2015-07-22 15 views
5

ile JSON'a dönüştürün Aşağıdaki yapıda bir veritabam varsa. Bana bunu çözmek için yardım edinDataTable'ı yalnızca değer

{ 
    "Building One": { 
     "Floor A": { 
      "A": { 
       "Occupied": "2", 
       "Vacant": "2" 
      }, 
      "B": { 
       "Occupied": "0", 
       "Vacant": "4" 
      }, 
      "C": { 
       "Occupied": "0", 
       "Vacant": "4" 
      }, 
      "D": { 
       "Occupied": "0", 
       "Vacant": "4" 
      }, 
      "E": { 
       "Occupied": "0", 
       "Vacant": "4" 
      } 
     }, 
     "Floor B": { 
      "F": { 
       "Occupied": "0", 
       "Vacant": "4" 
      }, 
      "G": { 
       "Occupied": "0", 
       "Vacant": "4" 
      }, 
      "H": { 
       "Occupied": "0", 
       "Vacant": "4" 
      }, 
      "D": { 
       "Occupied": "0", 
       "Vacant": "4" 
      }, 
      "I": { 
       "Occupied": "0", 
       "Vacant": "4" 
      } 
     } 
    } 
}; 

:

 
HostelName  FloorName FlatName Occupied Vacant 
Building One Floor A   A   2   2 
Building One Floor A   B   0   4 
Building One Floor A   C   0   4 
Building One Floor A   D   0   4 
Building One Floor A   E   0   4 
Building One Floor B   F   0   4 
Building One Floor B   G   0   4 
Building One Floor B   H   0   4 
Building One Floor B   I   0   4 
Building One Floor B   J   0   4 

Ben HostelName, FloorName & FlatName kolonlar gibi JSON nesnesi düğümleri olan bir JSON nesnesi olarak serialize etmek istiyorum.

+0

'StringBuilder' kullanarak JSON oluşturmaya çalışın. –

+0

Bize şu ana kadar neler denediğinizi anlatabilir misiniz? –

+0

Verileri en azından tablodan sorgulamayı başardınız mı? sorun ne? – greenfeet

cevap

0

Her katta sonlu sayıda oda olmadığı sürece, odayı bir dizi yapardım. Aynı katlar için de geçerli. Daha mantıklı ve daha sonra ayrıştırmak için çalışmak daha kolay.

Özel JSON yazmak için JSON.net'in JsonWriter kullanabilirsiniz. Sonra şöyle yazabiliriz:

StringBuilder sb = new StringBuilder(); 
StringWriter sw = new StringWriter(sb); 

using (JsonWriter writer = new JsonTextWriter(sw)) 
{ 
    writer.Formatting = Formatting.Indented; 
    writer.WriteStartObject(); 
    writer.WritePropertyName("Building One"); 
    writer.WriteStartObject(); 
    writer.WritePropertyName("Floor A"); 
    writer.WriteStartObject(); 
    writer.WritePropertyName("A"); 
    writer.WriteStartObject(); 
    writer.WritePropertyName("Occupied"); 
    writer.WriteValue("2"); 
    writer.WritePropertyName("Vacant"); 
    writer.WriteValue("2"); 
    writer.WriteEnd(); 
    writer.WritePropertyName("B"); 
    writer.WriteStartObject(); 
    writer.WritePropertyName("Occupied"); 
    writer.WriteValue("0"); 
    writer.WritePropertyName("Vacant"); 
    writer.WriteValue("4"); 
    writer.WriteEnd(); 
    writer.WriteEndObject(); 
} 

Ya JTokens

JObject o = new JObject(
    new JProperty("Building One", 
     new JObject(
      new JProperty("Floor A", 
       new JObject(
        new JProperty("A", 
         new JObject(
          new JProperty("Occupied", "2"), 
          new JProperty("Vacant", "2"))), 
        new JProperty("B", 
         new JObject(
          new JProperty("Occupied", "0"), 
          new JProperty("Vacant", "4"))))))));