flutter 保存一堆多语言翻译词条,由key和value组成

原理:

1.从String列表里面获取某个value:

         List<String> jsonStrings = [
                                '{"name": "John", "age": 30}',
                                '{"name": "Jane", "age": 25}',
                                '{"name": "Bob", "age": 35}',
                              ];

                              String key = 'age'; // 假设我们想获取 'age' 对应的值

                              for (String jsonString in jsonStrings) {
                                Map<String, dynamic> jsonObject = json.decode(jsonString);
                                if (jsonObject.containsKey(key)) {
                                  print('Value for key "$key": ${jsonObject[key]}');
                                }
                              }

2.flutter List jsonStrings = [
‘{“name”: “John”}’,
‘{“age”: 25}’,
];
如何写一个方法,往列表添加一个’{“class”: 1}’

void addJsonString(List<String> jsonStrings, String newJsonString) {
  jsonStrings.add(newJsonString);
}

void main() {
  List<String> jsonStrings = [
    '{"name": "John"}',
    '{"age": 25}',
  ];

  String newJsonString = '{"class": 1}';
  addJsonString(jsonStrings, newJsonString);

  print(jsonStrings); // 输出: [{"name": "John"}, {"age": 25}, {"class": 1}]
}

用sharePreference实现:

  //保存翻译词条
  saveTranslate(
      {required String originalText,
      required String code,
      required String translateText}) {
    List<String> saveTranslateList = [];
    //获取已经存好的数据
    if (SPHelper.getTranslateList == null) {
      SPHelper.setTranslateList([]);
    }

    if (SPHelper.getTranslateList != null) {
      saveTranslateList = SPHelper.getTranslateList;
      //添加翻译数据
      saveTranslateList.add('{"${originalText + code}":"$translateText"}');
      SPHelper.setTranslateList(saveTranslateList);
      PrintUtil.prints('翻译词条列表-保存-${json.encode(SPHelper.getTranslateList)}');
    }
  }

  //获取翻译词条
  getTranslateByCode({required String originalText, required String code}) {
    if (originalText == '') {
      return '';
    }

    //翻译的key
    String translateKey = originalText + code;
    //返回的翻译词条
    String translatedText = '';

    List<String> translateList = [];
    if (SPHelper.getTranslateList == null) {
      SPHelper.setTranslateList([]);
    }

    if (SPHelper.getTranslateList != null) {
      translateList = SPHelper.getTranslateList;
      PrintUtil.prints('翻译词条列表-获取保存的数据-${json.encode(translateList)}');

      for (String jsonString in translateList) {
        try {
          Map<String, dynamic> jsonObject = json.decode(jsonString);
          if (jsonObject.containsKey(translateKey)) {
            PrintUtil.prints(
                'Value for key "$translateKey": ${jsonObject[translateKey]}');
            translatedText = jsonObject[translateKey];
            PrintUtil.prints('翻译词条列表-JSON string: $jsonString');
          }
        } catch (e) {
          PrintUtil.prints('翻译词条列表-Invalid JSON string: $jsonString   错误:$e');
        }
      }
    }
    return translatedText;
  }

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-30 08:10:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-30 08:10:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-30 08:10:03       82 阅读
  4. Python语言-面向对象

    2024-03-30 08:10:03       91 阅读

热门阅读

  1. Tomcat

    Tomcat

    2024-03-30 08:10:03      32 阅读
  2. MacOS安装Homebrew教程

    2024-03-30 08:10:03       34 阅读
  3. 在Oracle中如何使用索引快速扫描优化全表扫描

    2024-03-30 08:10:03       45 阅读
  4. 代码随想录算法训练营 Day35 贪心算法4

    2024-03-30 08:10:03       41 阅读
  5. 中央处理器CPU

    2024-03-30 08:10:03       39 阅读
  6. 【OpenCV】Mat 构造函数

    2024-03-30 08:10:03       41 阅读
  7. Redis 过期删除策略 And 内存淘汰策略 !!!

    2024-03-30 08:10:03       39 阅读