Sample code for 30+ languages & platforms
Dart

Check if Integer Exists at JSON Path

Demonstrates how to get an integer value at a JSON path, and how to check to see if it exists.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  final json = CkJsonObject();

  // First build simple JSON..
  json.updateInt('test.abc', 100);

  json.emitCompact = false;
  print(json.emit());

  // This is our JSON:
  // {
  //   "test": {
  //     "abc": 100,
  //   }
  // }

  final path = 'test.notHere';

  // The call to IntOf will return 0, because it's not present.
  // But how do we know if it really was present, and the value was truly 0?
  final val = json.intOf(path);
  print('val = $val');

  // We cannot use LastMethodSuccess because LastMethodSuccess only applies
  // to methods that:
  // - return a string
  // - return a new Chilkat object, binary bytes, or a date/time.
  // - returns a boolean status where true = success and false = failed.
  // - returns an integer where failure is defined by a return value less than zero.
  // The IntOf method fits none of these requirements, and therefore the LastMethodSuccess 
  // is not a valid indicator..
  var wasFound = json.lastMethodSuccess;
  print('wasFound = $wasFound (not a valid indicator)');

  // Instead, if the returned value is 0, we can double-check to see if the member was truly there..
  if (val == 0) {
    wasFound = json.hasMember(path);
    print('wasFound = $wasFound');
    if (wasFound) {
      print('The value was present and is 0.');
    } else {
      print('no member is present at test.notHere');
    }
  } else {
    print('val = $val');
  }

  // Alternatively, you could check to see if the member exists beforehand..
  if (json.hasMember(path)) {
    print('val = ${json.intOf(path)}');
  } else {
    print('no member at $path');
  }
}