2016-04-22 22 views
2

私はこのようなファイルにJSONを書いてみる:指定:私は私のエラー...は(Xamarin C#)をファイルにJSONを書き込むことができません

System.InvalidCastExceptionのデバッグする場合

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; 
} 

キャストは無効です。この行の

...:

File.WriteAllText(filename, json); 

私のミスですか?

答えて

1

スニペットは、上記の方法を起動し、ローカルファイルへの文字列を保存するためにURL

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; 
    } 

スニペットから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); 
+0

に変換することを読むには? –

+0

Console.WriteLine(jsonString); – Sreeraj

+0

あなたのコードは動作します、ありがとう –

関連する問題