C# 从API获取Json数据并在Unity C中仅显示部分Json

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

我很难从中得到价格。我不需要来自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 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"];