2016-05-10 14 views
2

ユニバーサルアプリを作成する際に新しいです。ファイルUWP(C#)からJSONを読み取る

JSONが.txtファイルにあります。 xamlの画像とテキストボックス

JSONを.txtから読み込み、JSONからTextBoxにテキストを解析する必要があります。画像用の は、私はXamarin経由Adroidでそれを行う方法

Array 
(
    [0] => Array 
     (
      [post_title] => Ролл Чеддер c темпура креветкой 
      [post_excerpt] => Рис, нори, темпура креветка, сыр филадельфия, огурец, сыр чеддер, соус голландский 

      [img_url] => http://new.murakami.ua/wp-content/uploads/535_520Rol-chedr-s-sirom-filadelfiej-i-tempura-krevetkoyu.jpg 
      [visibility] => visible 
      [price] => 124.00 
      [weight] => 195/16 
      [sku] => 233 
     ) 

    [1] => Array 
     (
      [post_title] => Ролл спайси лосось 
      [post_excerpt] => Рис, нори, лосось, спайси соус, икра масаго, зеленый лук 
      [img_url] => http://new.murakami.ua/wp-content/uploads/535_520Rol-spajsi-losos.jpg 
      [visibility] => visible 
      [price] => 68.00 
      [weight] => 130/16 
      [sku] => 239 
     ) 

    [2] => Array 
     (
      [post_title] => Ролл с пастрами 

      [post_excerpt] => Рис, нори, пастрами, листья салата, перец болгарский, огурец, соус горчичный, помидор, голландский соус 

      [img_url] => http://new.murakami.ua/wp-content/uploads/535_520Rol-z-pastrami.jpg 
      [visibility] => visible 
      [price] => 98.00 
      [weight] => 185/16 
      [sku] => 245 
     ) 

    [3] => Array 
     (
      [post_title] => Ролл огуречный лосось 

      [post_excerpt] => Рис, нори, лосось, сыр филадельфия, сладкий омлет, икра тобико, огурец, голландский соус 

      [img_url] => http://new.murakami.ua/wp-content/uploads/535_520Rol-ogirkovij-losos.jpg 
      [visibility] => visible 
      [price] => 112.00 
      [weight] => 190/16 
      [sku] => 244 
     ) 

    [4] => Array 
     (
      [post_title] => Ролл оши абури с лососем и голландским соусом 

      [post_excerpt] => Рис, лосось, огурец, перец чили, голландский соус 

      [img_url] => http://new.murakami.ua/wp-content/uploads/535_520Oshi-aburi-z-lososem-i-golandskim-sousom.jpg 
      [visibility] => visible 
      [price] => 98.00 
      [weight] => 18016 
      [sku] => 240 
     ) 

マイJSON

JSON

var path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments); 
     var filename = System.IO.Path.Combine(path, "cache3.txt"); 
     JsonValue readJson; 
     var jsonString = File.ReadAllText(filename); 
     readJson = JsonObject.Parse(jsonString); 



    private async void ParseAndDisplay1(JsonValue readJson) 
    { 



     TextView productname = FindViewById<TextView>(Resource.Id.posttittle); 
     TextView price = FindViewById<TextView>(Resource.Id.price); 
     TextView weight = FindViewById<TextView>(Resource.Id.weight); 
     ImageView imagen = FindViewById<ImageView>(Resource.Id.image1); 
     ImageButton add = FindViewById<ImageButton>(Resource.Id.add); 
     add.Click += delegate 
     { 
      var intent = new Intent(this, typeof(BludoDetail)); 
      StartActivity(intent); 
     }; 
     productname.Click += delegate 
     { 
      var intent485 = new Intent(this, typeof(BludoDetail)); 
      StartActivity(intent485); 
     }; 
     JsonValue firstitem = readJson[0]; 

     productname.Text = firstitem["post_title"]; 
     price.Text = firstitem["price"] + " грн"; 
     weight.Text = firstitem["weight"];//"г"; 


     Koush.UrlImageViewHelper.SetUrlDrawable(imagen, firstitem["img_url"], null, 5000000); 
    } 

Xamarin.Androidで私はKoushプラグインを持っていたこと、URLを介してそれをダウンロードする必要があります、ダウンロードとキャッシュイメージ用

どのようにUWPのJsonからTextBoxへの情報を解析できますか?イメージをダウンロードしてキャッシュするにはどうすればよいですか?

答えて

0

Json.NETを使用してjsonを解析できます。

jsonを扱うクラスを作成し、xamlとデータを結合するためにバインディングを使用する必要があります。ダウンロードするためには画像はHttpClient

0

は、すべての場所check this linkからファイルを読み込むために使用し、それを解析するためにあなたは、あなたがまたSimple.JsonMicrosoft.Jsonを使用することができますしたい場合は、この

public IJsonData ParseWithJObjectParse(string json, string episodesName, string titleName) 
{ 
    var obj = JObject.Parse(json); 

    if (obj == null) 
     return null; 

    var items = obj.GetValue(episodesName).Select(
e => new JsonItem(((JObject)e).GetValue(titleName).ToString())); 

    var jsonItems = items.Cast<IJsonItem>().ToArray(); 
    var result = new JsonData 
    { 
     Items = jsonItems 
    }; 

    return result; 
} 

ようJson.Net packageを使用することができますが、私は好みますその容易さのためのJson.Net。

2番目の部分についてBitmapImageは、デフォルトで自動的にリモートイメージをキャッシュします。最高のパフォーマンスを得るには、CreateOptions = "BackgroundCreation"と組み合わせて使用​​するのがベストです。

<Image Height="100" Width="100" Margin="12,0,9,0"> 
<Image.Source> 
    <BitmapImage UriSource="{Binding ImgURL}" CreateOptions="BackgroundCreation"/> 
    </Image.Source> 
</Image> 

あなたはUriSourceため、その後check this link.

+0

を自分自身をキャッシュ制御したい場合は、私がそこに書くために必要なものを、JSONに私のURLを持っていますか? –

+0

そしてまずあなたのリンクは勝利8です。私は10モバイル(uwp)の勝利のためのアプリを書いています –

+0

私が理解したように、xamlではなく、.csファイルで画像をダウンロードする必要があります。 –

関連する問題