C# 从API获取Json数据并在Unity C中仅显示部分Json
我很难从中得到价格。我不需要来自web URL的所有JSON,我只需要速率:3394.2033部分 API数据:C# 从API获取Json数据并在Unity C中仅显示部分Json,c#,json,api,unity3d,json.net,C#,Json,Api,Unity3d,Json.net,我很难从中得到价格。我不需要来自web URL的所有JSON,我只需要速率:3394.2033部分 API数据: { "time": { "updated": "Feb 6, 2019 22:02:00 UTC", "updatedISO": "2019-02-06T16:02:00-06:00", "updateduk": "Feb 6, 2019 at 22:02 GMT" }, "disclaimer": "This data was produced
{
"time": {
"updated": "Feb 6, 2019 22:02:00 UTC",
"updatedISO": "2019-02-06T16:02:00-06:00",
"updateduk": "Feb 6, 2019 at 22:02 GMT"
},
"disclaimer": "This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org",
"bpi": {
"USD": {
"code": "USD",
"rate": "3,394.2033",
"description": "United States Dollar",
"rate_float": 3394.2033
},
"XBT": {
"code": "XBT",
"rate": "1.0000",
"description": "Bitcoin",
"rate_float": 1
}
}
}
我的代码:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class API : MonoBehaviour
{
private string www =
"https://api.coindesk.com/v1/bpi/currentprice/XBT.json";
public Text responseText;
public void Request()
{
WWW request = new WWW(www);
StartCoroutine(OnResponse(request));
}
private IEnumerator OnResponse(WWW req)
{
yield return req;
responseText.text = req.text;
}
}
这个脚本允许我提取所有JSON数据,但我只需要速率:3394.2033。更具体地说,只有值3394.2033。您可以使用newtonsoft,并遵循以下示例: 使用Json.Net的JTokens,只需一行代码即可完成此操作:
var rate = (string)JToken.Parse(json).SelectToken("bpi.USD.rate");
小提琴:你也可以使用Unity社区的旧金币 要在Unity中使用SimpleJSON,只需将SimpleJSON.cs文件复制到assets文件夹中的projects plugins文件夹中 并且做例如
var json = JSON.Parse(req.text);
var yourText = json["bpi"]["USD"]["rate"];
调试注意事项
如果未找到与预期相反的给定键,则会返回null而不是引发异常。您可以使用UnityWebRequest.Get获取JSON,然后使用库对其进行反序列化,我建议使用NewtonSoft.JSON 反序列化JSON后,可以从结果对象中选择要使用的属性 我编写了一个教程来做这件事,还有更多
谢谢你的指导;,在本例中,这行代码如何从Newtonsoft的示例链接中获取标题、内容和URL?IList results=rateSearch[responseData][results].Children.ToList;我用您的示例编辑我的答案:rateSearch[bpi][USD].Children.ToList。你可以在这里看到你的json格式:很好,我不知道那个!看起来就像是感谢的替代品!最后用它来修补它
var json = JSON.Parse(req.text);
var yourText = json["bpi"]["USD"]["rate"];