3 回答

TA貢獻2003條經(jīng)驗 獲得超2個贊
復(fù)制粘貼你的 json 和http://json2csharp.com/
你會得到這個:
public class Radial
{
public int radialNumber { get; set; }
public double azimuthDeg { get; set; }
public double elevationDeg { get; set; }
public int duration { get; set; }
public List<double> gateIntensity { get; set; }
}
public class RootObject
{
public int sweepIndex { get; set; }
public int totalRadials { get; set; }
public double beamWidth { get; set; }
public long startingUnixtime { get; set; }
public long endingUnixtime { get; set; }
public int totalGatesPerRay { get; set; }
public double gateDepthMeters { get; set; }
public double distanceToFirstGateMeters { get; set; }
public double meanElevationDeg { get; set; }
public double originLatitude { get; set; }
public double originLongitude { get; set; }
public double originAltitude { get; set; }
public int deviantOriginCount { get; set; }
public List<Radial> radials { get; set; }
}
然后你可以使用 JsonUtility 但你首先需要修改一些內(nèi)容。將 Serializable 屬性添加到每個類并刪除屬性擴展以生成這些基本變量。
[Serializable]
public class Radial
{
public int radialNumber;
public double azimuthDeg;
public double elevationDeg;
public int duration;
public List<double> gateIntensity;
}
[Serializable]
public class RootObject
{
public int sweepIndex;
// same with all following items
}
RootObject 是您的 json 的頂級類,它在 json 中沒有名稱,因此會生成默認值。您可以將 RootObject 更改為您想要的任何內(nèi)容,例如 JsonResponse?,F(xiàn)在可以像這樣使用了:
void Start()
{
string json = GetJsonFile(); // From download or text file
RootObject ro = JsonUtility.FromJson<RootObject>(json);
print( ro.radials[0].radialNumber);
}

TA貢獻1842條經(jīng)驗 獲得超22個贊
我在 Unity 中將JsonFx用于我的數(shù)據(jù)類。
示例類:
using JsonFx.Json;
[Serializable]
[JsonName("MyData")]
public class MyData
{
public int id;
public string name;
public int[] stuff;
}
示例 json:
{
"__Type": "MyData, Assembly-CSharp",
"id": 1,
"name": "new_data",
"stuff" :
[
0,
1,
2
]
}
從 json 創(chuàng)建數(shù)據(jù)對象:
// Json to MyData object:
// Assume I downloaded a json file
string jsonData = System.Text.Encoding.UTF8.GetString (www.bytes);
jsonData = jsonData.Trim ();
MyData data = MyData.Deserialize(jsonData);
從數(shù)據(jù)對象創(chuàng)建 json 文件
// MyData object to Json
// Use MyData data object
string file = "mydata.json";
JsonWriterSettings settings = new JsonWriterSettings ();
settings.PrettyPrint = true;
settings.TypeHintName = "__Type";
JsonWriter writer = new JsonWriter (file, settings);
writer.Write (data);
writer.TextWriter.Flush ();
writer.TextWriter.Close ();

TA貢獻1966條經(jīng)驗 獲得超4個贊
例如,有一個在線服務(wù)可以自動從 Json 轉(zhuǎn)換為 Poco
在 VisualStudio 中,還有一個菜單可以執(zhí)行此操作:
- 3 回答
- 0 關(guān)注
- 371 瀏覽
添加回答
舉報