---
title: JSON Use Case Object Hierarchy
---
classDiagram
  direction LR
  namespace codemelted {
    class CDataType {
      +Array
      +Boolean
      +Empty
      +Null
      +Number
      +Object
      +String
    }
    class CTruthyString {
      +as_truthy(self) bool
      +is_truthy(String) bool
    }
    class CObject
    class json_as_bool
    class json_as_number
    class json_as_string
    class json_check_type
    class json_create_array
    class json_create_object
    class json_has_key
    class json_parse
    class json_stringify
    class json_valid_url
  }
  namespace json {
    class JsonValue
  }
  CObject --> CTruthyString: implements
  CObject --> JsonValue: typed as
  json_as_bool --> CObject: uses
  json_as_number --> CObject: uses
  json_as_string --> CObject: uses
  json_check_type --> CDataType: uses
  json_check_type --> CObject: uses
  json_create_array --> CObject: creates
  json_create_object --> CObject: creates
  json_has_key --> CObject: uses
  json_parse --> CObject: uses
  json_stringify --> CObject: uses
