文字列がjson.decodeできるかどうかはどうすればわかりますか?質問する

文字列がjson.decodeできるかどうかはどうすればわかりますか?質問する

私のキャッシュクラス

import 'dart:async';
import 'dart:convert';
import 'package:shared_preferences/shared_preferences.dart';

class CacheUtil{
  static set(String key, value) async{
    if(value is Map || value is List){
      value = json.encode(value);
    }
    SharedPreferences preferences = await SharedPreferences.getInstance();
    preferences.setString(key, json.encode(value));
  }
  static get(String key) async{
    SharedPreferences preferences = await SharedPreferences.getInstance();
    String data = preferences.getString(key);
    return data;
  }
}

get メソッドで、値を json.decode できるかどうかを確認したいのですが、どうすればよいですか?

ベストアンサー1

デコードして、FormatException失敗したかどうかを確認してみてください。

void main() {
  var jsonString = '{"abc';
  var decodeSucceeded = false;
  try {
    var decodedJSON = json.decode(jsonString) as Map<String, dynamic>;
    decodeSucceeded = true;
  } on FormatException catch (e) {
    print('The provided string is not valid JSON');
  }
  print('Decoding succeeded: $decodeSucceeded');
}

おすすめ記事