2016-08-02 8 views
-1

Ich versuche, die Werte eines JSON zu einer Liste in Diagramm zu speichern. Ich bekomme den Fehler: Der angegebene Schlüssel war nicht im Wörterbuch vorhanden. Dies ist der Code-Block es ihr gibt mich auf:Wenn der Schlüssel im Wörterbuch nicht vorhanden ist, was mache ich falsch?

public void Processjson(string jsonString, string parameter) 
{ 
    if(parameter == "area"){ 
     Debug.Log("Processing area data!"); 
     var salesitemData = JsonMapper.ToObject(jsonString); 
     var grossArea = salesitemData["data"]["grossArea"]; 
     Debug.Log("The gross area is:" + " " + grossArea); 
    } 
    if(parameter == "sales"){ 
     Debug.Log("Processing sales data!"); 
     var areaitemData = JsonMapper.ToObject(jsonString); 
     List<Vector2> data = new List<Vector2>(); 
     int sales = (int) areaitemData["2016"]; 
     int sales2 = (int) areaitemData["2017"]; 
     int sales3 = (int) areaitemData["2018"]; 
     int sales4 = (int) areaitemData["2019"]; 
     int sales5 = (int) areaitemData["2020"]; 
     data.Add(new Vector2(sales, 1)); 
     data.Add(new Vector2(sales2, 2)); 
     data.Add(new Vector2(sales3, 3)); 
     data.Add(new Vector2(sales4, 4)); 
     data.Add(new Vector2(sales5, 5)); 
     Debug.Log("The sales for 2016 is:" + " " + sales); 
     var isDataCompleted = true; 
    } 
    /*Debug.Log("Processing JSON!"); 
    itemData = JsonMapper.ToObject(jsonString); 
    var floorID = itemData["floor"]; 
    var departmentID = itemData["department"]; 
    int storeArea = (int) itemData["area"]; 
    int sales = (int) itemData["sales"]; 
    Debug.Log("FloorID: " + " " + floorID + " " + "DepartmentID:" + " " + departmentID + " " + "Area:" + " " + storeArea + " " + "Sales:" + " " + sales); 
    var producitivty = (sales/storeArea); 
    //TODO: find a way to make it so that it can divide a larger numerator by lesser denominator 
    Debug.Log("Producitivty:" + " " + producitivty + " " + "Sales: " + " " + sales + " " + "StoreArea: " + " " + storeArea); 
    //OnGUI(); 
    */ 
} 

I Unity benutzen und mit LitJson, aber ich gehe davon aus, dass keiner von denen ist das Problem, dass es die Syntax von meinem Code ist der Moment. Jede Hilfe wird sehr geschätzt.

+0

auf welcher Zeile erhalten Sie den Fehler? –

Antwort

0

Welchen Parameter senden Sie "Bereich" oder "Umsatz"? Für dieses Beispiel verwende ich "Verkäufe" ... sieht dein JSON so aus, "{'2016': 12, '2017': 14, '2018': 12, '2019': 16, '2020': 22} " und enthält es alle Jahre 2016-2020? Die Art, wie Ihr Code geschrieben wird, muss alle 5 Schlüssel enthalten.

Ihre "Bereich" -Daten müssen jedoch so aussehen "{'Daten': {'BruttoArea': 12}}" zu arbeiten. Groß- und Kleinschreibung ist zu beachten, daher muss das "A" in BruttoArea groß geschrieben werden. Sie muss das Objekt "data" enthalten und muss "bruttoArea" enthalten. Oder Sie werden einen Schlüssel vermissen, von dem Sie annehmen, dass er existiert.

Nebenbei bemerkt, Sie scheinen Ihre Variablennamen überschritten ... "Bereich" hat eine Variable namens "SalesitemData" und "Umsatz" als eine Variable namens "AreaitemData". Auch der Gegenstand sollte großgeschrieben werden, da es aussieht, als ob Sie einen niedrigeren Kamelfall verwenden. Sie würden sie also salesItemData und areaItemData nennen.

Verwandte Themen