这是某人在回答问题时为我写的代码的一部分:
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。
答案 0 :(得分:0)
.i
返回long
类型。因为我使用从长到int的演员
<强> int i = (int)json["number"].i
强>
为什么没有返回int
值的字段或方法?我不知道! 但您可以在JSONObject.cs
创建它!它将是这样的:
public int Int{
get {
return (int)i;
}
}