Как прочитать файл JSON, хранящийся в Интернете, и изменить изображение на URL, когда найден - PullRequest
0 голосов
/ 01 ноября 2019

Я делаю приложение в единстве, и мне нужно, чтобы пользователь выполнил поиск по ключевому слову, и оно вернет все imageurls, хранящиеся в онлайн-файле json, которые относятся к этому ключевому слову (slug)

Мой коллега написалмне приведенный ниже код, так как у нее гораздо больше знаний о языке, чем у меня, но она не использует единство, и я не знаю, подходит ли оно для единства или для изменения текстуры изображения, поскольку я не могу вызвать его. Файл json в настоящее время хранится в проекте, но я бы предпочел, чтобы он читал что-то онлайн.

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;

public class UrlOpener : MonoBehaviour
{
    public string imageaddress;

    public void Open()
    {

        using (StreamReader r = new StreamReader("Assets/document.json"))
        {
            string json = r.ReadToEnd();

            var img= JsonUtility.FromJson<ArtImage>(json);
            imageaddress = img.imageurl;
        }
    }
}

[Serializable]
class ArtImage
{
    public string name { get; set; }
    public string imageurl { get; set; }
}

1 Ответ

0 голосов
/ 01 ноября 2019

Вы можете использовать WebClient для загрузки содержимого удаленного файла:

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Net;
using UnityEngine;

public class UrlOpener : MonoBehaviour
{
    public string imageaddress;

    public void Open()
    {

        using (var client = new WebClient())
        {
            string json = client.DownloadString("http://www.example.com/some.json");
            var img= JsonUtility.FromJson<ArtImage>(json);
            imageaddress = img.imageurl;
        }
    }
}

Обратите внимание, что в зависимости от используемого профиля .NET может потребоваться добавить ссылки на сборки для System. Net.WebClient.dll и System.Net.dll. Вы можете найти более подробную информацию о том, как добавить ссылки на сборки здесь .

...