2016-08-02 5 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

"area"または "sales"を送信するパラメータは何ですか?この例では、 "sales"を使用します... JSONは次のようになります"{'2016':12、 '2017':14、 '2018':12、 '2019':16、 '2020' 22} "には、2016年から2020年までのすべての年が含まれていますか?あなたのコードが書かれる方法には、5つのキーすべてが含まれている必要があります。

"エリアデータ"は、このようにする必要があります。"{'data':{'grossArea':12}}"大文字と小文字が区別されるので、grossAreaの 'A'は大文字にする必要があります。 'data'オブジェクトを含む必要があり、 'grossArea'を含む必要があります。または、存在すると推定されるキーが見つからないことになります。

あなたの変数名を越えたようです... 'area'には、 'areaitemData'という名前の変数として "salesitemData"と "sales"という名前の変数があります。また、キャメルケースを使用しているように見えるので、項目を大文字にする必要があります。したがって、salesItemDataとareaItemDataという名前を付けます。

関連する問題