Я пишу приложение для Android и хочу получить профессиональный совет.Кэширование JSON (Xamarin C#)
У меня есть категория с продуктами.
У меня есть JSON с этими продуктами.
Array
(
[0] => Array
(
[post_title] => Яблочный десерт
[post_excerpt] => Мус топленный шоколад, яблоко в карамели с ореховым тестом.
[img_url] => http://new.murakami.ua/wp-content/uploads/Untitled-1.jpg
[visibility] => visible
[price] => 78.00
[weight] => 90
[sku] => 594
)
[1] => Array
(
[post_title] => Сладкий ролл Филадельфия с клубникой и ананасом
[post_excerpt] =>
[img_url] => http://new.murakami.ua/wp-content/uploads/roll_sladkiy2.jpg
[visibility] => visible
[price] => 68.00
[weight] => 100
[sku] => 846
)
[2] => Array
(
[post_title] => Тирамису
[post_excerpt] => Бисквит, сыр креметте, сливки, какао, кофе Lavazza, ликер Triple Sec Volare
[img_url] => http://new.murakami.ua/wp-content/uploads/Tiramisu.jpg
[visibility] => visible
[price] => 59.00
[weight] => 110
[sku] => 248
)
[3] => Array
(
[post_title] => Наполеон
[post_excerpt] => Торт из слоёных коржей с заварным кремом.
[img_url] => http://new.murakami.ua/wp-content/uploads/Napoleon.jpg
[visibility] => visible
[price] => 58.00
[weight] => 140
[sku] => 633
)
[4] => Array
(
[post_title] => Ассорти мини чизкейков
[post_excerpt] => Чизкейк с ванильно-сырным муссом, с фисташковым муссом Баваруа и шоколадным крем-брюле, в основе которых ореховый чизкейк с миндального бисквита и крем-сыра Президент.
[img_url] => http://new.murakami.ua/wp-content/uploads/535_520-Assorti-CHizkejkov.jpg
[visibility] => visible
[price] => 84.00
[weight] => 130
[sku] => 141
)
[5] => Array
(
[post_title] => Шоколадно-авокадовый десерт
[post_excerpt] => Шоколадный бисквит, слой миндаля, шоколадный мусс с авокадо, сироп Амаретто, шоколад.
[img_url] => http://new.murakami.ua/wp-content/uploads/SHokoladno-avokadovyj-desert.jpg
[visibility] => visible
[price] => 64.00
[weight] => 100
[sku] => 225
)
)
Мне нужно кэшировать его, а затем показывать некоторые поля в пользовательском интерфейсе.
Теперь я загружаю его и показываю в пользовательском интерфейсе, вот так.
Загрузка:
string url2 = "http://papajohn.pp.ua/?mkapi=getProductsByCat&cat_id=74";
JsonValue json = await FetchAsync(url2);
private 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;
}
И Показано:
private void ParseAndDisplay(JsonValue json)
{
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);
JsonValue firstitem = json[0];
//Console.Out.WriteLine(firstitem["post_title"].ToString());
productname.Text = firstitem["post_title"];
price.Text = firstitem["price"] + " грн";
weight.Text = firstitem["weight"] + "г";
var imageBitmap = GetImageBitmapFromUrl(firstitem["img_url"]);
imagen.SetImageBitmap(imageBitmap);
}
Как я могу сделать кэш для этого JSON и не загружайте этот JSON каждый раз, когда пользователь переходит в категорию продукта?
Спасибо за помощь & совет.
напишите файл json во внутреннем хранилище, а затем используйте –
Файл с расширением .json? @JagadeeshGovindaraj –
просто напишите txt-файл –