2016-08-02 1 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}}"과 같이 표시되어야합니다. 대소 문자를 구분하므로 grossArea의 'A'를 대문자로 입력해야합니다. 그것은 'data'객체를 포함해야하며 'grossArea'를 포함해야합니다. 또는 존재하는 것으로 추정되는 키가 누락됩니다.

변수 이름을 교차시킨 것 같습니다 ... 'areait'에는 'salesitemData'라는 변수와 'salesit'이라는 변수가 'areaitemData'라는 변수로 있습니다. 또한 낙타의 경우가 더 적으므로 아이템을 대문자로 표기하십시오. 따라서 salesItemData 및 areaItemData로 이름을 지정합니다.

관련 문제