我是C#商店應用程序的初學者,我有一個JSON文件,我希望看到我的屏幕的圖塊。問題是我的方法不會檢索任何數據。 第二個問題,爲了向我的屏幕上顯示數據,它是否必須是可觀察的集合?C#商店應用程序無法加載json數據
public class DataConnection
{
public DataConnection()
{
}
public async Task getDataFromJson()
{
Uri dataUri = new Uri("ms-appx:///DataModel/ProductData.json");
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(dataUri);
string jsonText = await FileIO.ReadTextAsync(file);
JsonObject jsonObject = JsonObject.Parse(jsonText);
JsonArray jsonArray = jsonObject["Groups"].GetArray();
foreach (JsonValue groupValue in jsonArray)
{
List<ProductGroup> groupList = new List<ProductGroup>();
JsonObject groupObject = groupValue.GetObject();
ProductGroup group = new ProductGroup(groupObject["UniqueId"].GetString(),
groupObject["Title"].GetString(),
groupObject["Subtitle"].GetString(),
groupObject["ImagePath"].GetString(),
groupObject["Description"].GetString());
foreach (JsonValue itemValue in groupObject["Items"].GetArray())
{
JsonObject itemObject = itemValue.GetObject();
group.Items.Add(new ProductItem(itemObject["UniqueId"].GetString(),
itemObject["Title"].GetString(),
itemObject["Artikelnummer"].GetString(),
itemObject["VerkoopprijsInBtw"].GetString(),
itemObject["VerkoopprijsExBtw"].GetString(),
itemObject["Inkoopprijs"].GetString(),
itemObject["ActualStock"].GetString(),
itemObject["Marge"].GetString(),
itemObject["Eenheid"].GetString(),
itemObject["ImagePath"].GetString(),
itemObject["Description"].GetString()));
}
groupList.Add(group);
}
}
}
的問題似乎是在該行: 烏里dataUri =新URI( 「MS-APPX:///DataModel/ProductData.json」);
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(dataUri);
其中調試器只是結束方法,並且沒有任何數據被回收。 json文件中的數據經過測試並且正確,所以不是問題。 我從一個標準的GridApp複製了這個方法,所以代碼應該沒問題,我知道這個問題(可能)發生在StorageFile中。我錯過了什麼嗎?
任何提示會很好!
在此先感謝。
首先,我會檢查你的路徑,並確保完整的路徑是正確的(你可能已經做了,但仍然值得注意)。其次,我會看到'file'是否被正確的文件填充。在它後面添加一個斷點,看看它是否被加載。你也可以調用'GetBasicPropertiesAsync'並檢查它的'Size'。第三,你的集合不需要*成爲'ObservableCollection',除非你在填充它或修改它被加載到UI之後。如果它是一個靜態列表,它不會(但是請確保在加載數據後設置源**)。 –