从API获取Json数据并在Unity C中仅显示部分json#
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从API获取Json数据并在Unity C中仅显示部分json#相关的知识,希望对你有一定的参考价值。
我无法从this API获得价格。我不需要所有来自网址的JSON,我只需要"rate":"3,394.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数据,但我只需要"rate":"3,394.2033"
。更具体地说,只是值3,394.2033
。
答案
使用Json.Net的LINQ-to-JSON API(JTokens),您可以使用一行代码执行此操作:
var rate = (string)JToken.Parse(json).SelectToken("bpi.USD.rate");
小提琴:https://dotnetfiddle.net/Krgejr
另一答案
您可以使用newtonsoft并在此处遵循此示例:https://www.newtonsoft.com/json/help/html/SerializingJSONFragments.htm
public class SearchResult
{
public string Rate { get; set; }
}
JObject rateSearch = JObject.Parse(MyJsonText);
// get JSON result objects into a list
IList<JToken> results = rateSearch ["bpi"]["USD"].Children().ToList();
// serialize JSON results into .NET objects
IList<SearchResult> searchResults = new List<SearchResult>();
foreach (JToken result in results)
{
// JToken.ToObject is a helper method that uses JsonSerializer internally
SearchResult searchResult = result.ToObject<SearchResult>();
searchResults.Add(searchResult);
}
另一答案
你也可以使用来自Unity社区的古老而金色的SimpleJSON
要在Unity中使用SimpleJSON,您只需将SimpleJSON.cs文件复制到assets文件夹中的项目“plugins”文件夹中即可。
并做例如
var json = JSON.Parse(req.text);
var yourText = json["bpi"]["USD"]["rate"];
注意调试
如果找不到给定的键与您期望的相反,则返回null
而不是抛出异常。
以上是关于从API获取Json数据并在Unity C中仅显示部分json#的主要内容,如果未能解决你的问题,请参考以下文章
从 api 获取所有数据以及如何在 swift ios 中仅在单元格上附加标题
在颤振中显示仅产品名称的列表,使用json格式的woocommerce api数据