c# - 通过 C# 在 Unity 中从 API URL 解析 JSON
问题描述
我正在尝试解析 JSON 数组中的一些数据,以便可以在我的项目中使用它。这些值用于绘制用于可视化轨道的函数,除了这个任务之外,我已经完成了项目的所有内容。为了解析 JSON,我尝试使用 LitJSon,但没有运气。如果有人可以就我应该如何做到这一点提供一些见解,将不胜感激。
这是我拥有的 JSON 格式:
网址:https ://5289daa5c202.ngrok.io/api/tle
[
{
"SatNum": "47757",
"Epoch": "21076.58335648",
"MMotDeriv": "-.01183622",
"inclination": "53.0445",
"RAAN": "118.1488",
"Eccentricity": "0001096",
"ArgPerigee": "64.2393",
"MAnomaly": "229.2271",
"MMotion": "15.76357572"
}, {
"SatNum": "47758",
"Epoch": "21076.83334491",
"MMotDeriv": "-.01182939",
"inclination": "53.0463",
"RAAN": "116.9104",
"Eccentricity": "0001165",
"ArgPerigee": "60.1537",
"MAnomaly": "211.8085",
"MMotion": "15.75727878"
}
]
解决方案
要从服务器获取数据,请使用新UnityWebRequest
类。例子:
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
public class MyBehaviour : MonoBehaviour
{
public string json;
void Start()
{
StartCoroutine(GetText());
}
IEnumerator GetText()
{
using (UnityWebRequest www = UnityWebRequest.Get("http://www.my-server.com"))
{
yield return www.Send();
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
}
else
{
// Show results as text
json = www.downloadHandler.text;
// Or retrieve results as binary data
byte[] results = www.downloadHandler.data;
}
}
}
}
然后,您可以使用JsonUtility
将其转换为 c# 类,您必须使用变量创建一个对象类并使用 json 数据作为构造函数。
例子:
using UnityEngine;
[System.Serializable]
public class PlayerInfo
{
public string name;
public int lives;
public float health;
public static PlayerInfo CreateFromJSON(string jsonString)
{
return JsonUtility.FromJson<PlayerInfo>(jsonString);
}
// Given JSON input:
// {"name":"Dr Charles","lives":3,"health":0.8}
// this example will return a PlayerInfo object with
// name == "Dr Charles", lives == 3, and health == 0.8f.
}
推荐阅读
- python - Python:创建一个接受表达式并将表达式打印为字符串及其结果的函数
- javascript - 第二次单击时按钮被禁用
- javascript - 如何在 reactjs 中以编程方式触发 onsubmit 事件?
- android - 无法从 Firebase 数据库中获取数据 - 它返回一个空值
- laravel - 如何获取总和ID较少的数据
- python-3.x - 在 Python 3 中安装 Shapely
- html - 有没有办法简化在 HTML5 中创建类似的多组件元素?
- php - 尝试在 laravel 中重命名表的列会引发错误
- reactjs - 将 prop 元素设置为状态
- google-bigquery - 在 bigquery 中创建分区外部表