Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 如何判断字符串是否可以是json.decode_Dart_Flutter - Fatal编程技术网

Dart 如何判断字符串是否可以是json.decode

Dart 如何判断字符串是否可以是json.decode,dart,flutter,Dart,Flutter,我的缓存类 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); }

我的缓存类

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
我该怎么办?

只要试着解码它并捕获
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');
}
void main(){
var jsonString='{“abc';
var=false;
试一试{
var decodedJSON=json.decode(jsonString)作为映射;
解码成功=真;
}关于格式化异常捕获(e){
print('提供的字符串不是有效的JSON');
}
打印('Decoding successed:$decodecoccessed');
}