2016-08-02 29 views
-1

我想存儲一個JSON的值到一個列表來繪製。我得到錯誤:給定的密鑰不在字典中。這是代碼它給它給我的塊:鑑於鑰匙不在字典中,我做錯了什麼?

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(); 
    */ 
} 

我使用的統一,並採用LitJson,但我假設,無論這些都是問題,這是我的代碼的語法此時此刻。任何幫助深表感謝。

+0

你會在哪一行發生錯誤? –

回答

0

您發送「區域」或「銷售」的參數是?對於這個例子,我將使用「銷售」......你的JSON是這樣的,「{'2016':12,'2017':14,'2018':12,'2019':16,'2020': 22}「,是否包含2016-2020年?您的代碼寫入的方式需要包含所有5個密鑰。

然而,您的「區域」數據需要如下所示:「{'data':{'grossArea':12}}」「才能正常工作。這是區分大小寫的,因此總區的'A'需要大寫。它必須包含'數據'對象,它需要包含'grossArea'。或者你會錯過一個你認爲存在的鑰匙。

在附註中,您似乎已經越過了變量名稱...'area'有一個名爲'salesitemData'和'sales'的變量作爲名爲'areaitemData'的變量。此外,項目應該大寫,因爲它看起來你使用較低的駱駝案件。所以你會將它們命名爲salesItemData和areaItemData。