统一 - 从JSON中读取错误

时间:2017-07-18 12:54:56

标签: c# unity3d

这是某人在回答问题时为我写的代码的一部分:

JSONObject jsonRead = new JSONObject(jsonString);
packsInfo = new Pack[jsonRead.Count];
for(int i =0; i < jsonRead.Count; i ++) 
{
    Pack pack = new Pack();
    pack.number = (int)jsonRead[i]["number"].i;
    pack.angle = (int)jsonRead[i]["angle"].i;
    pack.zPosition = jsonRead[i]["z_position"].f;
    pack.beatCaseDistance =jsonRead[i]["beat_case_distance"].f;
    pack.gunDistance = jsonRead[i]["gun_distance"].f;
    packsInfo[i] = pack;
}

我在我的代码中使用它。每件事情都正常但这些方面:

pack.number = (int)jsonRead[i]["number"].i;
pack.angle = (int)jsonRead[i]["angle"].i;

我意识到.f是一个get{}方法,用于从JSON读取float,我找不到任何读取int的方法。如果我删除.i,它会给我一个错误,即他无法隐式地将JSON转换为int。

1 个答案:

答案 0 :(得分:0)

.i返回long类型。因为我使用从长到int的演员

<强> int i = (int)json["number"].i

为什么没有返回int值的字段或方法?我不知道! 您可以在JSONObject.cs创建它!它将是这样的:

public int Int{ 
    get { 
        return (int)i; 
    }
}