Unity 3dのJsonUtilityを使用してJSONファイルから項目を削除する最適な方法は何ですか?UnityでJsonUtilityを使用してJSON文字列から項目を削除する最も良い方法3d
ロードする必要があると想定していますが、解析する必要がありますか、リストに変換する必要がありますか?
操作が完了したら、保存します。 中間部分の助けがあれば助けになります。 ありがとう!
Unity 3dのJsonUtilityを使用してJSONファイルから項目を削除する最適な方法は何ですか?UnityでJsonUtilityを使用してJSON文字列から項目を削除する最も良い方法3d
ロードする必要があると想定していますが、解析する必要がありますか、リストに変換する必要がありますか?
操作が完了したら、保存します。 中間部分の助けがあれば助けになります。 ありがとう!
ロードする必要があると想定していますが、解析する必要がありますか? をリストに変換しますか?
はい、JsonUtilityでは、読み込んでリストに変換してから項目を削除する必要があります。まず、アイテムには、それを識別して削除するために使用できる変数が必要です。削除するアイテムの名前が "ken"であるとします。
シリアライズとデシリアライズロードするテストデータ:
[Serializable]
public class PlayerData
{
public string name;
public int score;
}
ロード(配列が戻っリストに変換してロードする必要があります):
:string jsonToLoad = PlayerPrefs.GetString("Data");
//Load as Array
PlayerData[] _tempLoadListData = JsonHelper.FromJson<PlayerData>(jsonToLoad);
//Convert to List
List<PlayerData> loadListData = _tempLoadListData.OfType<PlayerData>().ToList();
すべての「ケン」の項目を削除
for (int i = 0; i < loadListData.Count; i++)
{
if (loadListData[i].name == "ken")
{
loadListData.Remove(loadListData[i]);
}
}
またはLINQのと:
loadListData.RemoveAll((x) => x.name == "ken");
次に、あなたはそれを保存することができます:あなたのotherの記事で述べたように
string jsonToSave = JsonHelper.ToJson(loadListData.ToArray());
PlayerPrefs.SetString("Data", jsonToSave);
PlayerPrefs.Save();
のうち、もちろん、あなたがJsonHelper
が必要になります。
THANKSプログラマー! –
問題ありません。一度ロードするだけでよいので、ロードしたjsonデータを終了してから保存する必要があるまで変更することができます。 – Programmer
kenが変数の場合はどうしたらいいですか? –