2016-04-07 28 views
0

Benzer bir düz JSON dosyası var ve "Material_name_lv1", "Material_name_lv2" ve "Material_name_lv3" için yuvalanmış bir alan oluşturmak istiyorum.İç içe değerler oluşturma JSON biçiminde R

[ 
    { 
    "Vendor": 100000, 
    "Vendor.Name": "xxxCARS", 
    "PO.Number": 4100004621, 
    "Prod.Desc": "Taxi", 
    "Date": "04/01/2014", 
    "Material.group": "CO1250106", 
    "Material.Name": "Corporate - Travel - Taxis", 
    "PO.Item": 1, 
    "Requester": "65", 
    "Requester.Name": "Anna", 
    "Payment.Terms": "YT", 
    "Order..Value": 100, 
    "GR..Value": 0, 
    "GR..": 0, 
    "Invoiced..Amount": 100, 
    "Invoiced..": 100, 
    "material_name_lv1": "Corporate ", 
    "material_name_lv2": " Travel ", 
    "material_name_lv3": " Taxis" 
    }, 
    { 
    "Vendor": 100000, 
    "Vendor.Name": "xxx CARS", 
    "PO.Number": 4100011066, 
    "Prod.Desc": "Taxi when and as required", 
    "Date": "02/01/2015", 
    "Material.group": "CO1250106", 
    "Material.Name": "Corporate - Travel", 
    "PO.Item": 1, 
    "Requester": "65", 
    "Requester.Name": "Anna", 
    "Payment.Terms": "YT", 
    "Order..Value": 500, 
    "GR..Value": 0, 
    "GR..": 0, 
    "Invoiced..Amount": 500, 
    "Invoiced..": 100, 
    "material_name_lv1": "Corporate ", 
    "material_name_lv2": " Travel ", 
    "material_name_lv3": "" 
    } 
] 

ben "Material_name_lv1" iç içe geçmiş bir alan olmaya "Material_name_lv2" ve "Material_name_lv2" iç içe geçmiş bir alanı olmak "Material_name_lv3" istiyoruz.

örn: -

{ 
    "Vendor": 100000, 
    "Vendor.Name": "500 CARS", 
    "PO.Number": 4100004621, 
    "Prod.Desc": "Taxi", 
    "Date": "04/01/2014", 
    "Material.group": "CO1250106", 
    "Material.Name": "Corporate - Travel - Taxis", 
    "PO.Item": 1, 
    "Requester": "65", 
    "Requester.Name": "Kurzawa, Anna", 
    "Payment.Terms": "YP30", 
    "Order..Value": 10000, 
    "GR..Value": 0, 
    "GR..": 0, 
    "Invoiced..Amount": 10000, 
    "Invoiced..": 100, 
    "material_name_lv1":{ 
     "name" : "coperate", 
     "material_name_lv2": { 
      "name": "Travel", 
      material_name_lv3": { 
       "name": "Taxis" 
      } 
     }, 
     }, 
    }, 

Ben Ar oldukça yeni ve JSON dosyaları üzerinde hiç çalışmamış. JSON'u işleyen bir dizi R paketi buldum ancak biçimlendirme komutlarında katı bir şey yok. Herhangi bir rehberlik takdir edilecektir.

NB: - material_name düzeylerini "Material.Name" den ayırdım ve belirli satırlar yalnızca 2 düzey içeriyor.

Teşekkür

cevap

0
sadece JSON çıktısını istediğiniz aynı formda bir liste oluşturmak zorunda

...

mylist <- list(a="something", 
       b=list("name"="myname", 
         "material_name"=list("name"="mat_name", 
              "age"=12 
              ) 
       ) 
) 

> jsonlite::toJSON(mylist, pretty=TRUE, auto_unbox=TRUE) 
{ 
    "a": "something", 
    "b": { 
    "name": "myname", 
    "material_name": { 
     "name": "mat_name", 
     "age": 12 
    } 
    } 
} 
İlgili konular