【问题标题】:Cannot write JSON to file (Xamarin C#)无法将 JSON 写入文件(Xamarin C#)
【发布时间】:2016-08-15 23:35:28
【问题描述】:

我尝试将 JSON 写入这样的文件:

string url2 = "http://papajohn.pp.ua/?mkapi=getProductsByCat&cat_id=83";
JsonValue json = await FetchAsync(url2);

var path = System.Environment.GetFolderPath(
    System.Environment.SpecialFolder.ApplicationData);
var filename = Path.Combine(path, "cache.txt");

File.WriteAllText(filename, json);

public async Task<JsonValue> FetchAsync(string url)
{
    System.IO.Stream jsonStream;
    JsonValue jsonDoc;

    using (var httpClient = new System.Net.Http.HttpClient())
    {
        jsonStream = await httpClient.GetStreamAsync(url);
        jsonDoc = JsonObject.Load(jsonStream);
    }

    return jsonDoc;
}

当我调试时出现错误...

System.InvalidCastException:指定的强制转换无效。

...在这一行:

File.WriteAllText(filename, json);

我的错误在哪里?

【问题讨论】:

    标签: c# android json xamarin xamarin.android


    【解决方案1】:

    从 URL 获取 JsonString 的片段

    public async Task<string> FetchAsync(string url)
        {
            string jsonString;
    
            using (var httpClient = new System.Net.Http.HttpClient())
            {
                var stream = await httpClient.GetStreamAsync(url);
                StreamReader reader = new StreamReader(stream);
                jsonString = reader.ReadToEnd();
            }
    
            return jsonString;
        }
    

    调用上述方法并将字符串保存到本地文件的片段。

    string url2 = "http://papajohn.pp.ua/?mkapi=getProductsByCat&cat_id=83";
                var json = await FetchAsync(url2);
    
                var path = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                var filename = Path.Combine(path, "cache.txt");
                File.WriteAllText(filename,json);
    

    稍后从该文件中读取该 JsonString 并将其转换为 Json 的片段

    JsonValue readJson; 
                var jsonString =File.ReadAllText(filename);
                readJson = JsonObject.Parse(jsonString);
    

    【讨论】:

    • 如何将这个文件中的文本显示到控制台?
    • Console.WriteLine(jsonString);
    猜你喜欢
    • 1970-01-01
    • 2021-02-19
    • 2021-04-19
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    相关资源
    最近更新 更多