decodeIfJsonString function

dynamic decodeIfJsonString(
  1. dynamic v
)

If v is a JSON-encoded string, decodes it. Otherwise returns v unchanged. Empty strings are returned as-is. Decoding errors return v unchanged (best-effort).

Implementation

dynamic decodeIfJsonString(dynamic v) {
  if (v is String) {
    final s = v.trim();
    if (s.isEmpty) return v;
    try {
      return jsonDecode(s);
    } catch (_) {
      return v;
    }
  }
  return v;
}