我正在学习如何使用 json 文件序列化数据(这就是它应该被调用的)。我想保存计算机科学作业的文本及其答案。Json 文件包含以下文本:
{
"all_tasks": {
"IT_task": [
{
"tasks": [
"В одной из кодировок Unicode каждый символ кодируется 16 битами. Вова написал текст (в нём нет лишних пробелов):
«Ёж, лев, слон, олень, тюлень, носорог, крокодил, аллигатор — дикие животные».
Ученик вычеркнул из списка название одного из животных. Заодно он вычеркнул ставшие лишними запятые и пробелы — два пробела не должны идти подряд.
При этом размер нового предложения в данной кодировке оказался на 16 байтов меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название животного.",
"В одной из кодировок Unicode каждый символ кодируется 16 битами. Ваня написал текст (в нём нет лишних пробелов):
«Уфа, Азов, Пермь, Белово, Вологда, Камбарка, Соликамск — города России».
Ученик вычеркнул из списка название одного из городов. Заодно он вычеркнул ставшие лишними запятые и пробелы — два пробела не должны идти подряд.
При этом размер нового предложения в данной кодировке оказался на 22 байта меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название города России.",
"В одной из кодировок Unicode каждый символ кодируется 32 битами. Алёша написал текст (в нём нет лишних пробелов):
«Ток, фата, шляпа, колпак, диадема, кокошник - головные уборы».
Ученик вычеркнул из списка название одного из головных уборов. Заодно он вычеркнул ставшие лишними запятые и пробелы — два пробела не должны идти подряд.
При этом размер нового предложения в данной кодировке оказался на 24 байта меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название головного убора.",
"В одной из кодировок Unicode каждый символ кодируется 8 битами. Слава написал текст (в нём нет лишних пробелов):
«Уно, вист, нард, домино, реверси, мельница, монополия - настольные игры».
Ученик вычеркнул из списка название одной из настольных игр. Заодно он вычеркнул ставшие лишними запятые и пробелы — два пробела не должны идти подряд.
При этом размер нового предложения в данной кодировке оказался на 10 байтов меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название головного убора."
],
"answers": [
"Тюлень",
"Соликамск",
"Фата",
"Мельница"
]
}
]
}
}
统一起来,我使用以下代码将此代码转换为具有 all_tasks 结构的类:
public void initializeTasksDictionaries ()
{
string path = Application.streamingAssetsPath + "/DataTask.game";
StreamReader reader = File.OpenText(path);
string jsonString = reader.ReadToEnd();
all_tasks = JsonUtility.FromJson<Tasks>(jsonString).all_tasks;
}
我得到一个错误:
ArgumentException: JSON parse error: Invalid escape character in string. UnityEngine.JsonUtility.FromJson (System.String json, System.Type type) (at <1386288601af43018501cce2912f52f4>:0)...
也就是说,错误在于json文件,但我没有找到任何东西:所有的括号都到位,都正确,逗号也是......
通过实验,我发现添加换行符时出现错误?这是否意味着在 json 文件中我只能使用 \n 进行换行,但将文件中的所有文本写在一行上?
""
用.替换字符串中的换行翻译(字符串是\n
.