将多行字符串从文本字段保存到JSON文件

Ayrock618

我有一个应用程序,可让用户在中键入和保存文本TextField如果输入的文本TextField是一个连续行,则效果很好如果用户按下Return / Enter键在中创建新行,TextField则不会正确保存到JSON文件中。有没有一种方法可以将多行文本从中保存TextField到JSON文件中?

        Flexible(
            child: TextField(
            controller: _notesController,
            obscureText: false,
            maxLines: null,
            onChanged: (value) {
                // updates playterNotes to the text inputed
                playerList.players[index].playerNotes = value;
                
                // updates JSON file
                writePlayerData(playerList);
            },
            style: TextStyle(
                color: Color.fromRGBO(255, 174, 3, 1.0),
                letterSpacing: 2.0,
                fontSize: 14.0,
                fontFamily: 'Smash'
            ),
            ),
        )

编辑:如果JSON文件未正确保存,则加载占位符JSON。
这是初始“单行”后打印出的JSON

I/flutter ( 4058): {"players":[{"id": "GitHub Test","setCount": "0 - 0","characters": {"char1": "cloud","char2": ""},"notes": "single line"}]} 

这是“多行”后打印出的JSON

I/flutter ( 4058): {"players":[{"id": "GitHub Test","setCount": "0 - 0","characters": {"char1": "cloud","char2": ""},"notes": "single line
I/flutter ( 4058): multi line"}]}

测试
WritePlayerData:

Future<File> writePlayerData(PlayerList playerList) async {
  final file = await _localFile;
  return file.writeAsString(PlayerListtoJson(playerList));
}

哪个调用:

String PlayerListtoJson(PlayerList playerList) {
  String playerJson = "";

  if (playerList.players.length  > 0 ) {
    playerJson = '{"players":[${playerToJson(playerList.players)}]}';
  }
  return playerJson;
}

String playerToJson(List<Player> players) {
  String playerString = "";

  for(int i = 0; i < players.length; i++) {
    playerString += '{"id": "${players[i].playerId}",'
        '"setCount": "${players[i].playerSetCount}",'
        '"characters": ${characterToJson(players[i].playerChars)}'
        '"notes": "${players[i].playerNotes}"}';

    if (!(i == players.length - 1)) {
      playerString += ',';
    }
  }
  return playerString;
}

String characterToJson (Characters characters) {
  String playerCharacters = '{"char1": "${characters.char1}",'
      '"char2": "${characters.char2}"},';

  return playerCharacters;
}

参考JSON:

{
  "players": [
    {
      "id": "Filler Character",
      "setCount": "0 - 0",
      "characters": {
        "char1": "",
        "char2": ""
      },
      "notes": "Lorem ipsum dolor sit amet, consectetur."
    }
  ]
}
亚都

使用来转义新行,\以便编码器不会在产生的JSON中插入新行

String s = 'A\nB\nC';
print('$s');
//A
//B
//C
//escaping the new line with a additional "\"
s = s.split('\n').join('\\n');
//or
//s.replaceAll('\n', '\\n');
print('$s');
//A\nB\nC

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将多行字符串保存到文本文件,而不会覆盖以前的文本

将字符串保存到文本文件

如何将字符串保存到json文件

如何将数据从文本字段保存到json文件?

无法将文本字段转换为字符串

文本文件:查找字符串,将字符串字段保存到var,查找第二个字符串,将字段替换为var,重复到结束

如何将哈希或json字符串保存到jsonb字段中

将文本字符串转换为JSON数组

AWK-将字符串从文件保存到变量

Lua将字符串保存到文件

将 JSON 字符串中的值保存到 Python 中的 .txt 文件

将json字符串保存到txt文件时出现序列化问题

使用组将许多行连接到单个文本字符串中

将带有变量字符串的多行保存到html文件

从获取文本字段字符串逐行写入或打印到文本文件

如何将丰富的编辑中的多行(字符串)保存到字符串数组中?

如何将批量文本文件中的选择字符串输出保存到阵列Powershell

如何在C ++中使用字符串将文本文件保存到结构

使用open()函数将大字符串数据保存到文本文件时内存不足

保存文本字符串(如果以不同的特定文本字符串开头)?

SQL Server - 如果字段尚未包含文本字符串,则查询以将文本字符串附加到字段

Django从文本字段中的JSON字符串中检索JSON键/值

如何将字符串传递给CQ对话框文本字段

使用Javascript实时将字符串从多个文本字段转换为slug

React 表单将文本字段值放入查询字符串中?

通过 Rails 迁移将文本字段中的符号转换为字符串

使用Python将字符串粘贴到Gnome中的选定文本字段中

mutate 将文本字段转换为包装的字符串

PHP将数组作为字符串插入mysql文本字段