---
product: Chilkat
product_version: 11.7.0
language: ckpython
language_label: CkPython
class: JsonObject
class_name: CkJsonObject
license: free
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/pythonCkJsonObjectRef.html
---
# Chilkat JsonObject — CkPython — v11.7.0

> Chilkat 11.7.0 · language=ckpython · class=JsonObject (CkJsonObject)
> Other versions: replace `11.7.0` in this URL. Other languages: `https://www.chilkatsoft.com/ai-docs/v/11.7.0/<lang>/classes/JsonObject.md`.
> Language-wide rules (install, unlock, error model, strings/bytes): `https://www.chilkatsoft.com/ai-docs/v/11.7.0/ckpython/guide.md`.

## Purpose

**Load, navigate, create, modify, search, sort, and emit JSON objects.**

`Chilkat.JsonObject` provides DOM-style access to JSON objects. It can load, inspect, modify, create, search, sort, emit, and save JSON data. It supports path-based access, index-based member access, automatic creation of nested paths, object and array references, Firebase-style updates, record searches, date/time conversion, binary data encoding, variable substitution, and optional secure secret resolution.

**Load and emit JSON**

Load JSON from strings, files, buffers, or Chilkat objects, then emit the result as compact or pretty-formatted JSON.

**Path-based navigation**

Read and update nested values using JSON paths, with support for automatically creating missing object or array paths.

**Member access**

Access object members by name or index, inspect member types, retrieve values, and remove or rename members as needed.

**Nested objects and arrays**

Work directly with child `JsonObject` and `JsonArray` references to navigate and modify complex JSON structures.

**Search and transform**

Search records, sort object members, perform Firebase-style updates, and prepare JSON for API requests or application storage.

**Special value handling**

Handle date/time values, binary data encodings, exact numeric text, variable substitution, and secure secret resolution.

**Common pattern:** Load or create a `JsonObject`, navigate named members and nested paths, retrieve child arrays as `JsonArray` objects when ordered lists are encountered, update values as needed, then emit or save the final JSON. Use `JsonObject` for named JSON members and `JsonArray` for ordered lists.

For an extended overview, see [JsonObject Class Overview](https://www.chilkatsoft.com/jsonobject_class_overview.asp).

## Object creation, unlocking and error handling

**Object Creation**

```python
obj = chilkat.CkJsonObject()
```

Call `Global.UnlockBundle` once at the start of the program, before using this or any other Chilkat class. Any string unlocks a fully functional 30-day trial; a purchased unlock code is used in production. See `guide.md` for the exact code in CkPython.

How failure is reported depends on the method's return type and is stated in the note under each method below. In every case the diagnostic text is in the `LastErrorText` property of the object whose method was called.

## Members common to every Chilkat class

Documented once per language in `common-members.md`; listed here so this page is self-contained.

| Property | Signature | Access | Meaning |
|---|---|---|---|
| `DebugLogFilePath` | `# strVal is a string # ckStr is a CkString jsonObject.get_DebugLogFilePath(ckStr); strVal = jsonObject.debugLogFilePath(); jsonObject.put_DebugLogFilePath(strVal);` | read/write | If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. |
| `LastErrorHtml` | `# strVal is a string # ckStr is a CkString jsonObject.get_LastErrorHtml(ckStr); strVal = jsonObject.lastErrorHtml();` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `# strVal is a string # ckStr is a CkString jsonObject.get_LastErrorText(ckStr); strVal = jsonObject.lastErrorText();` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `# strVal is a string # ckStr is a CkString jsonObject.get_LastErrorXml(ckStr); strVal = jsonObject.lastErrorXml();` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `# boolVal is a boolean boolVal = jsonObject.get_LastMethodSuccess(); jsonObject.put_LastMethodSuccess(boolVal);` | read/write | Indicates the success or failure of the most recent method call: `True` means success, `False` means failure. |
| `Utf8` | `# boolVal is a boolean boolVal = jsonObject.get_Utf8(); jsonObject.put_Utf8(boolVal);` | read/write | When set to `True`, all `string` arguments and return values are interpreted as UTF-8 strings. |
| `VerboseLogging` | `# boolVal is a boolean boolVal = jsonObject.get_VerboseLogging(); jsonObject.put_VerboseLogging(boolVal);` | read/write | If set to `True`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `# strVal is a string # ckStr is a CkString jsonObject.get_Version(ckStr); strVal = jsonObject.version();` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `DelimiterChar` | property, read/write | `# strVal is a string # ckStr is a CkString jsonObject.get_DelimiterChar(ckStr); strVal = jsonObject.delimiterChar(); jsonObject.put_DelimiterChar(strVal);` |
| `EmitCompact` | property, read/write | `# boolVal is a boolean boolVal = jsonObject.get_EmitCompact(); jsonObject.put_EmitCompact(boolVal);` |
| `EmitCrLf` | property, read/write | `# boolVal is a boolean boolVal = jsonObject.get_EmitCrLf(); jsonObject.put_EmitCrLf(boolVal);` |
| `EnableSecrets` | property, read/write | `# boolVal is a boolean boolVal = jsonObject.get_EnableSecrets(); jsonObject.put_EnableSecrets(boolVal);` |
| `I` | property, read/write | `# intVal is an integer intVal = jsonObject.get_I(); jsonObject.put_I(intVal);` |
| `J` | property, read/write | `# intVal is an integer intVal = jsonObject.get_J(); jsonObject.put_J(intVal);` |
| `K` | property, read/write | `# intVal is an integer intVal = jsonObject.get_K(); jsonObject.put_K(intVal);` |
| `LowerCaseNames` | property, read/write | `# boolVal is a boolean boolVal = jsonObject.get_LowerCaseNames(); jsonObject.put_LowerCaseNames(boolVal);` |
| `PathPrefix` | property, read/write | `# strVal is a string # ckStr is a CkString jsonObject.get_PathPrefix(ckStr); strVal = jsonObject.pathPrefix(); jsonObject.put_PathPrefix(strVal);` |
| `Size` | property, read-only | `# intVal is an integer intVal = jsonObject.get_Size();` |
| `Strict` | property, read/write | `# boolVal is a boolean boolVal = jsonObject.get_Strict(); jsonObject.put_Strict(boolVal);` |
| `UncommonOptions` | property, read/write | `# strVal is a string # ckStr is a CkString jsonObject.get_UncommonOptions(ckStr); strVal = jsonObject.uncommonOptions(); jsonObject.put_UncommonOptions(strVal);` |
| `AddArrayAt` | method | `# index is an integer # name is a string status = jsonObject.AddArrayAt(index, name);` |
| `AddArrayCopyAt` | method | `# index is an integer # name is a string # jarr is a CkJsonArray status = jsonObject.AddArrayCopyAt(index, name, jarr);` |
| `AddBoolAt` | method | `# index is an integer # name is a string # value is a boolean status = jsonObject.AddBoolAt(index, name, value);` |
| `AddIntAt` | method | `# index is an integer # name is a string # value is an integer status = jsonObject.AddIntAt(index, name, value);` |
| `AddNullAt` | method | `# index is an integer # name is a string status = jsonObject.AddNullAt(index, name);` |
| `AddNumberAt` | method | `# index is an integer # name is a string # numericStr is a string status = jsonObject.AddNumberAt(index, name, numericStr);` |
| `AddObjectAt` | method | `# index is an integer # name is a string status = jsonObject.AddObjectAt(index, name);` |
| `AddObjectCopyAt` | method | `# index is an integer # name is a string # jsonObj is a CkJsonObject status = jsonObject.AddObjectCopyAt(index, name, jsonObj);` |
| `AddStringAt` | method | `# index is an integer # name is a string # value is a string status = jsonObject.AddStringAt(index, name, value);` |
| `AppendArray` | method | `# returns a CkJsonArray # name is a string ret_jsonArray = jsonObject.AppendArray(name);` |
| `AppendArray2` | method | `# name is a string # jarr is a CkJsonArray status = jsonObject.AppendArray2(name, jarr);` |
| `AppendArrayCopy` | method | `# name is a string # jarr is a CkJsonArray status = jsonObject.AppendArrayCopy(name, jarr);` |
| `AppendBool` | method | `# name is a string # value is a boolean status = jsonObject.AppendBool(name, value);` |
| `AppendInt` | method | `# name is a string # value is an integer status = jsonObject.AppendInt(name, value);` |
| `AppendObject` | method | `# returns a CkJsonObject # name is a string ret_jsonObject = jsonObject.AppendObject(name);` |
| `AppendObject2` | method | `# name is a string # jsonObj is a CkJsonObject status = jsonObject.AppendObject2(name, jsonObj);` |
| `AppendObjectCopy` | method | `# name is a string # jsonObj is a CkJsonObject status = jsonObject.AppendObjectCopy(name, jsonObj);` |
| `AppendString` | method | `# name is a string # value is a string status = jsonObject.AppendString(name, value);` |
| `AppendStringArray` | method | `# name is a string # values is a CkStringTable status = jsonObject.AppendStringArray(name, values);` |
| `ArrayAt` | method | `# returns a CkJsonArray # index is an integer ret_jsonArray = jsonObject.ArrayAt(index);` |
| `ArrayAt2` | method | `# index is an integer # jarr is a CkJsonArray status = jsonObject.ArrayAt2(index, jarr);` |
| `ArrayOf` | method | `# returns a CkJsonArray # jsonPath is a string ret_jsonArray = jsonObject.ArrayOf(jsonPath);` |
| `ArrayOf2` | method | `# jsonPath is a string # jarr is a CkJsonArray status = jsonObject.ArrayOf2(jsonPath, jarr);` |
| `BoolAt` | method | `# index is an integer retBool = jsonObject.BoolAt(index);` |
| `BoolOf` | method | `# jsonPath is a string retBool = jsonObject.BoolOf(jsonPath);` |
| `BytesOf` | method | `# jsonPath is a string # encoding is a string # bd is a CkBinData status = jsonObject.BytesOf(jsonPath, encoding, bd);` |
| `Clear` | method | `jsonObject.Clear();` |
| `CopyRef` | method | `# jsonObj is a CkJsonObject status = jsonObject.CopyRef(jsonObj);` |
| `DateOf` | method | `# jsonPath is a string # dt is a CkDateTime status = jsonObject.DateOf(jsonPath, dt);` |
| `Delete` | method | `# name is a string status = jsonObject.Delete(name);` |
| `DeleteAt` | method | `# index is an integer status = jsonObject.DeleteAt(index);` |
| `DeleteRecords` | method | `# arrayPath is a string # relpath is a string # value is a string # caseSensitive is a boolean retInt = jsonObject.DeleteRecords(arrayPath, relpath, value, caseSensitive);` |
| `DtOf` | method | `# jsonPath is a string # bLocal is a boolean # dt is a CkDtObj status = jsonObject.DtOf(jsonPath, bLocal, dt);` |
| `Emit` | method | `# outStr is a CkString (output) status = jsonObject.Emit(outStr); retStr = jsonObject.emit();` |
| `EmitBd` | method | `# bd is a CkBinData status = jsonObject.EmitBd(bd);` |
| `EmitSb` | method | `# sb is a CkStringBuilder status = jsonObject.EmitSb(sb);` |
| `EmitWithSubs` | method | `# subs is a CkHashtable # omitEmpty is a boolean # outStr is a CkString (output) status = jsonObject.EmitWithSubs(subs, omitEmpty, outStr); retStr = jsonObject.emitWithSubs(subs, omitEmpty);` |
| `FindObjectWithMember` | method | `# returns a CkJsonObject # name is a string ret_jsonObject = jsonObject.FindObjectWithMember(name);` |
| `FindObjectWithMember2` | method | `# name is a string # jsonObj is a CkJsonObject status = jsonObject.FindObjectWithMember2(name, jsonObj);` |
| `FindRecord` | method | `# returns a CkJsonObject # arrayPath is a string # relPath is a string # value is a string # caseSensitive is a boolean ret_jsonObject = jsonObject.FindRecord(arrayPath, relPath, value, caseSensitive);` |
| `FindRecord2` | method | `# arrayPath is a string # relPath is a string # value is a string # caseSensitive is a boolean # jsonObj is a CkJsonObject status = jsonObject.FindRecord2(arrayPath, relPath, value, caseSensitive, jsonObj);` |
| `FindRecordString` | method | `# arrayPath is a string # relPath is a string # value is a string # caseSensitive is a boolean # retRelPath is a string # outStr is a CkString (output) status = jsonObject.FindRecordString(arrayPath, relPath, value, caseSensitive, retRelPath, outStr); retStr = jsonObject.findRecordString(arrayPath, relPath, value, caseSensitive, retRelPath);` |
| `FirebaseApplyEvent` | method | `# name is a string # data is a string status = jsonObject.FirebaseApplyEvent(name, data);` |
| `FirebasePatch` | method | `# jsonPath is a string # jsonData is a string status = jsonObject.FirebasePatch(jsonPath, jsonData);` |
| `FirebasePut` | method | `# jsonPath is a string # value is a string status = jsonObject.FirebasePut(jsonPath, value);` |
| `GetDocRoot` | method | `# returns a CkJsonObject ret_jsonObject = jsonObject.GetDocRoot();` |
| `GetDocRoot2` | method | `# docRoot is a CkJsonObject status = jsonObject.GetDocRoot2(docRoot);` |
| `HasMember` | method | `# jsonPath is a string status = jsonObject.HasMember(jsonPath);` |
| `IndexOf` | method | `# name is a string retInt = jsonObject.IndexOf(name);` |
| `IntAt` | method | `# index is an integer retInt = jsonObject.IntAt(index);` |
| `IntOf` | method | `# jsonPath is a string retInt = jsonObject.IntOf(jsonPath);` |
| `IsNullAt` | method | `# index is an integer retBool = jsonObject.IsNullAt(index);` |
| `IsNullOf` | method | `# jsonPath is a string retBool = jsonObject.IsNullOf(jsonPath);` |
| `JsonTypeOf` | method | `# jsonPath is a string retInt = jsonObject.JsonTypeOf(jsonPath);` |
| `Load` | method | `# json is a string status = jsonObject.Load(json);` |
| `LoadBd` | method | `# bd is a CkBinData status = jsonObject.LoadBd(bd);` |
| `LoadFile` | method | `# path is a string status = jsonObject.LoadFile(path);` |
| `LoadPredefined` | method | `# name is a string status = jsonObject.LoadPredefined(name);` |
| `LoadSb` | method | `# sb is a CkStringBuilder status = jsonObject.LoadSb(sb);` |
| `MakeCopy` | method | `# json is a CkJsonObject status = jsonObject.MakeCopy(json);` |
| `MoveMember` | method | `# fromIndex is an integer # toIndex is an integer status = jsonObject.MoveMember(fromIndex, toIndex);` |
| `NameAt` | method | `# index is an integer # outStr is a CkString (output) status = jsonObject.NameAt(index, outStr); retStr = jsonObject.nameAt(index);` |
| `NewArrayOf` | method | `# path is a string # jArr is a string status = jsonObject.NewArrayOf(path, jArr);` |
| `NewObjectOf` | method | `# path is a string # jObj is a string status = jsonObject.NewObjectOf(path, jObj);` |
| `ObjectAt` | method | `# returns a CkJsonObject # index is an integer ret_jsonObject = jsonObject.ObjectAt(index);` |
| `ObjectAt2` | method | `# index is an integer # jsonObj is a CkJsonObject status = jsonObject.ObjectAt2(index, jsonObj);` |
| `ObjectOf` | method | `# returns a CkJsonObject # jsonPath is a string ret_jsonObject = jsonObject.ObjectOf(jsonPath);` |
| `ObjectOf2` | method | `# jsonPath is a string # jsonObj is a CkJsonObject status = jsonObject.ObjectOf2(jsonPath, jsonObj);` |
| `Predefine` | method | `# name is a string status = jsonObject.Predefine(name);` |
| `Rename` | method | `# oldName is a string # newName is a string status = jsonObject.Rename(oldName, newName);` |
| `RenameAt` | method | `# index is an integer # name is a string status = jsonObject.RenameAt(index, name);` |
| `SetBoolAt` | method | `# index is an integer # value is a boolean status = jsonObject.SetBoolAt(index, value);` |
| `SetBoolOf` | method | `# jsonPath is a string # value is a boolean status = jsonObject.SetBoolOf(jsonPath, value);` |
| `SetIntAt` | method | `# index is an integer # value is an integer status = jsonObject.SetIntAt(index, value);` |
| `SetIntOf` | method | `# jsonPath is a string # value is an integer status = jsonObject.SetIntOf(jsonPath, value);` |
| `SetNullAt` | method | `# index is an integer status = jsonObject.SetNullAt(index);` |
| `SetNullOf` | method | `# jsonPath is a string status = jsonObject.SetNullOf(jsonPath);` |
| `SetNumberAt` | method | `# index is an integer # value is a string status = jsonObject.SetNumberAt(index, value);` |
| `SetNumberOf` | method | `# jsonPath is a string # value is a string status = jsonObject.SetNumberOf(jsonPath, value);` |
| `SetStringAt` | method | `# index is an integer # value is a string status = jsonObject.SetStringAt(index, value);` |
| `SetStringOf` | method | `# jsonPath is a string # value is a string status = jsonObject.SetStringOf(jsonPath, value);` |
| `SizeOfArray` | method | `# jsonPath is a string retInt = jsonObject.SizeOfArray(jsonPath);` |
| `Sort` | method | `# ascending is a boolean # caseSensitive is a boolean jsonObject.Sort(ascending, caseSensitive);` |
| `StringAt` | method | `# index is an integer # outStr is a CkString (output) status = jsonObject.StringAt(index, outStr); retStr = jsonObject.stringAt(index);` |
| `StringOf` | method | `# jsonPath is a string # outStr is a CkString (output) status = jsonObject.StringOf(jsonPath, outStr); retStr = jsonObject.stringOf(jsonPath);` |
| `StringOfEquals` | method | `# jsonPath is a string # value is a string # caseSensitive is a boolean retBool = jsonObject.StringOfEquals(jsonPath, value, caseSensitive);` |
| `StringOfSb` | method | `# jsonPath is a string # sb is a CkStringBuilder status = jsonObject.StringOfSb(jsonPath, sb);` |
| `Swap` | method | `# index1 is an integer # index2 is an integer status = jsonObject.Swap(index1, index2);` |
| `TypeAt` | method | `# index is an integer retInt = jsonObject.TypeAt(index);` |
| `UIntOf` | method | `# jsonPath is a string retInt = jsonObject.UIntOf(jsonPath);` |
| `UpdateBd` | method | `# jsonPath is a string # encoding is a string # bd is a CkBinData status = jsonObject.UpdateBd(jsonPath, encoding, bd);` |
| `UpdateBool` | method | `# jsonPath is a string # value is a boolean status = jsonObject.UpdateBool(jsonPath, value);` |
| `UpdateInt` | method | `# jsonPath is a string # value is an integer status = jsonObject.UpdateInt(jsonPath, value);` |
| `UpdateNewArray` | method | `# jsonPath is a string status = jsonObject.UpdateNewArray(jsonPath);` |
| `UpdateNewObject` | method | `# jsonPath is a string status = jsonObject.UpdateNewObject(jsonPath);` |
| `UpdateNull` | method | `# jsonPath is a string status = jsonObject.UpdateNull(jsonPath);` |
| `UpdateNumber` | method | `# jsonPath is a string # numericStr is a string status = jsonObject.UpdateNumber(jsonPath, numericStr);` |
| `UpdateSb` | method | `# jsonPath is a string # sb is a CkStringBuilder status = jsonObject.UpdateSb(jsonPath, sb);` |
| `UpdateString` | method | `# jsonPath is a string # value is a string status = jsonObject.UpdateString(jsonPath, value);` |
| `UpdateUInt` | method | `# jsonPath is a string # value is an integer status = jsonObject.UpdateUInt(jsonPath, value);` |
| `WriteFile` | method | `# path is a string status = jsonObject.WriteFile(path);` |

Deprecated members are listed at the end of this file with their replacements; do not use them in new code.

## Properties

### JsonObject.DelimiterChar

`Chilkat 11.7.0 · ckpython · JsonObject · DelimiterChar · property · read/write · since 9.5.0.58`

```python
# strVal is a string

# ckStr is a CkString

jsonObject.get_DelimiterChar(ckStr);

strVal = jsonObject.delimiterChar();

jsonObject.put_DelimiterChar(strVal);
```

Specifies the character used to separate object-member names in Chilkat JSON paths. The default is `.`. Set it to `/` for Firebase-style paths. This property should contain exactly one character.

**Arrays in paths:** Array indexes continue to use square brackets, such as `orders[0].id`. If a member name itself contains a path-separator character, quote that path component with double quotes.

### JsonObject.EmitCompact

`Chilkat 11.7.0 · ckpython · JsonObject · EmitCompact · property · read/write · since 9.5.0.56`

```python
# boolVal is a boolean

boolVal = jsonObject.get_EmitCompact();

jsonObject.put_EmitCompact(boolVal);
```

Controls whether emitted JSON is compact or pretty-printed. The default is `True`.

|  |  |
| --- | --- |
| `True` | Emit a compact representation with no extra formatting whitespace. |
| `False` | Emit indented, human-readable JSON. |

**JSON semantics:** Formatting whitespace does not change the JSON data. Use compact output for transport/storage and pretty output for diagnostics or human review.

### JsonObject.EmitCrLf

`Chilkat 11.7.0 · ckpython · JsonObject · EmitCrLf · property · read/write · since 9.5.0.56`

```python
# boolVal is a boolean

boolVal = jsonObject.get_EmitCrLf();

jsonObject.put_EmitCrLf(boolVal);
```

Controls line endings when pretty-printed JSON is emitted (`EmitCompact = False`). The default is `True`.

|  |  |
| --- | --- |
| `True` | Use CRLF line endings. |
| `False` | Use LF line endings. |

**Compact output:** This setting has no effect when `EmitCompact` is `True` because compact JSON is emitted without formatting line breaks.

### JsonObject.EnableSecrets

`Chilkat 11.7.0 · ckpython · JsonObject · EnableSecrets · property · read/write · since 11.5.0`

```python
# boolVal is a boolean

boolVal = jsonObject.get_EnableSecrets();

jsonObject.put_EnableSecrets(boolVal);
```

**Full documentation for this property (same in every language):** [More Detailed Information About EnableSecrets](https://www.chilkatsoft.com/ai-docs/v/11.7.0/articles/secret_specification_strings.md)

Enables automatic resolution of Chilkat secret specification strings for supported string-setting methods. The default is `False`. When enabled, a value beginning with `!!` can identify a credential stored in Windows Credential Manager or Apple Keychain instead of embedding the literal secret in application code.

Secret specification format: `!![appName|]service[|domain]|username`.

This feature applies to `AddStringAt`, `AppendString`, `SetStringAt`, `SetStringOf`, `UpdateSb`, and `UpdateString`.

**Security:** Secret resolution changes where the string value comes from; the resulting JSON member still contains the resolved value. Avoid emitting or logging JSON that contains credentials unless that exposure is explicitly intended.

### JsonObject.I

`Chilkat 11.7.0 · ckpython · JsonObject · I · property · read/write · since 9.5.0.56`

```python
# intVal is an integer

intVal = jsonObject.get_I();

jsonObject.put_I(intVal);
```

Supplies the integer substituted for `i` when a JSON path contains an array index such as `[i]`. This is useful for loop-based navigation without constructing a new path string for every iteration.

**Related properties:** The `J` and `K` properties provide the same substitution behavior for `[j]` and `[k]`.

### JsonObject.J

`Chilkat 11.7.0 · ckpython · JsonObject · J · property · read/write · since 9.5.0.56`

```python
# intVal is an integer

intVal = jsonObject.get_J();

jsonObject.put_J(intVal);
```

Supplies the integer substituted for `j` when a JSON path contains `[j]`. It is commonly used with nested-array paths such as `matrix[i][j]`.

### JsonObject.K

`Chilkat 11.7.0 · ckpython · JsonObject · K · property · read/write · since 9.5.0.56`

```python
# intVal is an integer

intVal = jsonObject.get_K();

jsonObject.put_K(intVal);
```

Supplies the integer substituted for `k` when a JSON path contains `[k]`. It can be combined with `I` and `J` for deeper nested-array traversal.

### JsonObject.LowerCaseNames

`Chilkat 11.7.0 · ckpython · JsonObject · LowerCaseNames · property · read/write · since 9.5.0.87`

```python
# boolVal is a boolean

boolVal = jsonObject.get_LowerCaseNames();

jsonObject.put_LowerCaseNames(boolVal);
```

If `True`, member names are converted to lowercase while JSON is loaded by `Load`, `LoadBd`, `LoadSb`, or `LoadFile`. The default is `False`.

**Important:** This changes member names in the parsed document; it is not merely a case-insensitive lookup mode. Use it only when normalizing names is intentional.

### JsonObject.PathPrefix

`Chilkat 11.7.0 · ckpython · JsonObject · PathPrefix · property · read/write · since 9.5.0.76`

```python
# strVal is a string

# ckStr is a CkString

jsonObject.get_PathPrefix(ckStr);

strVal = jsonObject.pathPrefix();

jsonObject.put_PathPrefix(strVal);
```

Specifies a path prefix automatically prepended to JSON paths passed to path-based methods such as `StringOf`, `ObjectOf`, `UpdateString`, `SetBoolOf`, and `SizeOfArray`. The default is the empty string.

**Use case:** Set a prefix when many operations target the same nested object. The individual method calls can then use paths relative to that prefix.

### JsonObject.Size

`Chilkat 11.7.0 · ckpython · JsonObject · Size · property · read-only · since 9.5.0.56`

```python
# intVal is an integer

intVal = jsonObject.get_Size();
```

Returns the number of direct name/value members in this JSON object. Nested members inside child objects are not included.

**JSON objects and order:** RFC 8259 defines a JSON object as an unordered collection of name/value pairs. Chilkat preserves a member order so index-based APIs and deterministic emission are possible, but interoperable application logic should generally use member names rather than depend on object order.

### JsonObject.Strict

`Chilkat 11.7.0 · ckpython · JsonObject · Strict · property · read/write · since 11.6.0`

```python
# boolVal is a boolean

boolVal = jsonObject.get_Strict();

jsonObject.put_Strict(boolVal);
```

When `Strict` is **true**, the Load methods first check that the data is well-formed JSON. If it is not, the load fails and the contents of this JsonObject are left **unchanged**. The default is `False`.

This applies to `Load`, `LoadSb`, `LoadBd`, `LoadFile` and `LoadPredefined`.

Chilkat's JSON parser is deliberately tolerant. By default it can accept text that is not well-formed, succeed, and leave an empty or partially populated document. That is convenient when the goal is a best-effort parse of imperfect input, but it is the wrong behavior when a silently missing member changes what the application does. A single missing comma, for example, can cause the members after it to be dropped while the load still reports success.

Set `Strict` to `True` for JSON carrying configuration, credentials, or security parameters, where a member that quietly failed to load would be acted on as though it had never been specified.

**Note:** The default is `False` so that existing applications are unaffected. When a strict load is rejected, this JsonObject keeps whatever it held before the call, so a failed reload never leaves the object empty.

### JsonObject.UncommonOptions

`Chilkat 11.7.0 · ckpython · JsonObject · UncommonOptions · property · read/write · since 9.5.0.90`

```python
# strVal is a string

# ckStr is a CkString

jsonObject.get_UncommonOptions(ckStr);

strVal = jsonObject.uncommonOptions();

jsonObject.put_UncommonOptions(strVal);
```

Provides a catch-all string for uncommon, implementation-specific options. The default is the empty string and it should normally remain empty.

**Recommendation:** Do not invent option keywords. Set this property only when a specific `JsonObject` option is documented by Chilkat or provided by Chilkat support.

## Methods

### JsonObject.AddArrayAt

`Chilkat 11.7.0 · ckpython · JsonObject · AddArrayAt · method · since 9.5.0.56`

```python
# index is an integer

# name is a string

status = jsonObject.AddArrayAt(index, name);
```

Inserts a new JSON array member named `name` at the zero-based member position `index`. The new array is empty.

|  |  |
| --- | --- |
| `0` | Insert as the first member. |
| `-1` | Append as the last member. |
| `n` | Insert at zero-based position n. |

**Member name vs. JSON path:** `name` is a direct member name, not a JSON path. Use an `Update*` or `Set*Of` method when addressing a nested value by path.

Returns True for success, False for failure.

### JsonObject.AddArrayCopyAt

`Chilkat 11.7.0 · ckpython · JsonObject · AddArrayCopyAt · method · since 9.5.0.82`

```python
# index is an integer

# name is a string

# jarr is a CkJsonArray

status = jsonObject.AddArrayCopyAt(index, name, jarr);
```

Inserts a new JSON array member named `name` at the zero-based member position `index`. The array value is copied from `jarr`; subsequent changes to the source array do not modify the inserted copy.

|  |  |
| --- | --- |
| `0` | Insert as the first member. |
| `-1` | Append as the last member. |
| `n` | Insert at zero-based position n. |

**Member name vs. JSON path:** `name` is a direct member name, not a JSON path. Use an `Update*` or `Set*Of` method when addressing a nested value by path.

Returns True for success, False for failure.

### JsonObject.AddBoolAt

`Chilkat 11.7.0 · ckpython · JsonObject · AddBoolAt · method · since 9.5.0.56`

```python
# index is an integer

# name is a string

# value is a boolean

status = jsonObject.AddBoolAt(index, name, value);
```

Inserts a new JSON boolean member named `name` at the zero-based member position `index`. The value is taken from `value`.

|  |  |
| --- | --- |
| `0` | Insert as the first member. |
| `-1` | Append as the last member. |
| `n` | Insert at zero-based position n. |

**Member name vs. JSON path:** `name` is a direct member name, not a JSON path. Use an `Update*` or `Set*Of` method when addressing a nested value by path.

Returns True for success, False for failure.

### JsonObject.AddIntAt

`Chilkat 11.7.0 · ckpython · JsonObject · AddIntAt · method · since 9.5.0.56`

```python
# index is an integer

# name is a string

# value is an integer

status = jsonObject.AddIntAt(index, name, value);
```

Inserts a new JSON number member named `name` at the zero-based member position `index`. The integer `value` is emitted as a JSON number, not as a quoted string.

|  |  |
| --- | --- |
| `0` | Insert as the first member. |
| `-1` | Append as the last member. |
| `n` | Insert at zero-based position n. |

**Member name vs. JSON path:** `name` is a direct member name, not a JSON path. Use an `Update*` or `Set*Of` method when addressing a nested value by path.

Returns True for success, False for failure.

### JsonObject.AddNullAt

`Chilkat 11.7.0 · ckpython · JsonObject · AddNullAt · method · since 9.5.0.56`

```python
# index is an integer

# name is a string

status = jsonObject.AddNullAt(index, name);
```

Inserts a new JSON null member named `name` at the zero-based member position `index`.

|  |  |
| --- | --- |
| `0` | Insert as the first member. |
| `-1` | Append as the last member. |
| `n` | Insert at zero-based position n. |

**Member name vs. JSON path:** `name` is a direct member name, not a JSON path. Use an `Update*` or `Set*Of` method when addressing a nested value by path.

Returns True for success, False for failure.

### JsonObject.AddNumberAt

`Chilkat 11.7.0 · ckpython · JsonObject · AddNumberAt · method · since 9.5.0.56`

```python
# index is an integer

# name is a string

# numericStr is a string

status = jsonObject.AddNumberAt(index, name, numericStr);
```

Inserts a new JSON number member named `name` at the zero-based member position `index`. The `numericStr` argument supplies the exact JSON numeric text to store.

|  |  |
| --- | --- |
| `0` | Insert as the first member. |
| `-1` | Append as the last member. |
| `n` | Insert at zero-based position n. |

**Member name vs. JSON path:** `name` is a direct member name, not a JSON path. Use an `Update*` or `Set*Of` method when addressing a nested value by path.

**Exact numeric text:** Use this method when lexical form or precision matters, for example `12345678901234567890`, `1.2500`, or scientific notation. The supplied text must be valid JSON number syntax; JSON does not permit `NaN` or infinity.

Returns True for success, False for failure.

### JsonObject.AddObjectAt

`Chilkat 11.7.0 · ckpython · JsonObject · AddObjectAt · method · since 9.5.0.56`

```python
# index is an integer

# name is a string

status = jsonObject.AddObjectAt(index, name);
```

Inserts a new JSON object member named `name` at the zero-based member position `index`. The new object is empty.

|  |  |
| --- | --- |
| `0` | Insert as the first member. |
| `-1` | Append as the last member. |
| `n` | Insert at zero-based position n. |

**Member name vs. JSON path:** `name` is a direct member name, not a JSON path. Use an `Update*` or `Set*Of` method when addressing a nested value by path.

Returns True for success, False for failure.

### JsonObject.AddObjectCopyAt

`Chilkat 11.7.0 · ckpython · JsonObject · AddObjectCopyAt · method · since 9.5.0.82`

```python
# index is an integer

# name is a string

# jsonObj is a CkJsonObject

status = jsonObject.AddObjectCopyAt(index, name, jsonObj);
```

Inserts a new JSON object member named `name` at the zero-based member position `index`. The object value is copied from `jsonObj`; the inserted value is independent of the source.

|  |  |
| --- | --- |
| `0` | Insert as the first member. |
| `-1` | Append as the last member. |
| `n` | Insert at zero-based position n. |

**Member name vs. JSON path:** `name` is a direct member name, not a JSON path. Use an `Update*` or `Set*Of` method when addressing a nested value by path.

Returns True for success, False for failure.

### JsonObject.AddStringAt

`Chilkat 11.7.0 · ckpython · JsonObject · AddStringAt · method · since 9.5.0.56`

```python
# index is an integer

# name is a string

# value is a string

status = jsonObject.AddStringAt(index, name, value);
```

Inserts a new JSON string member named `name` at the zero-based member position `index`. The value is stored as a JSON string and is escaped as needed when emitted.

|  |  |
| --- | --- |
| `0` | Insert as the first member. |
| `-1` | Append as the last member. |
| `n` | Insert at zero-based position n. |

**Member name vs. JSON path:** `name` is a direct member name, not a JSON path. Use an `Update*` or `Set*Of` method when addressing a nested value by path.

Returns True for success, False for failure.

### JsonObject.AppendArray

`Chilkat 11.7.0 · ckpython · JsonObject · AppendArray · method · since 9.5.0.58`

```python
# returns a CkJsonArray

# name is a string

ret_jsonArray = jsonObject.AppendArray(name);
```

Appends a new JSON array member named `name` to this object. The newly appended array is empty and the returned `JsonArray` references that array in this document, so changes made through it modify the same JSON tree.

**Member name vs. JSON path:** `name` is a direct member name. It is not interpreted as a JSON path. Use the corresponding `Update*` method when a nested path should be addressed or created.

Returns `None` on failure

### JsonObject.AppendArray2

`Chilkat 11.7.0 · ckpython · JsonObject · AppendArray2 · method · since 11.0.0`

```python
# name is a string

# jarr is a CkJsonArray

status = jsonObject.AppendArray2(name, jarr);
```

Appends a new JSON array member named `name` to this object. A new empty array is created and `jarr` is updated to reference it. The method returns `True` on success.

**Member name vs. JSON path:** `name` is a direct member name. It is not interpreted as a JSON path. Use the corresponding `Update*` method when a nested path should be addressed or created.

Returns True for success, False for failure.

### JsonObject.AppendArrayCopy

`Chilkat 11.7.0 · ckpython · JsonObject · AppendArrayCopy · method · since 9.5.0.82`

```python
# name is a string

# jarr is a CkJsonArray

status = jsonObject.AppendArrayCopy(name, jarr);
```

Appends a new JSON array member named `name` to this object. The array is copied from `jarr`, so the appended array is independent of the source array.

**Member name vs. JSON path:** `name` is a direct member name. It is not interpreted as a JSON path. Use the corresponding `Update*` method when a nested path should be addressed or created.

Returns True for success, False for failure.

### JsonObject.AppendBool

`Chilkat 11.7.0 · ckpython · JsonObject · AppendBool · method · since 9.5.0.58`

```python
# name is a string

# value is a boolean

status = jsonObject.AppendBool(name, value);
```

Appends a new JSON boolean member named `name` to this object. The value is taken from `value`.

**Member name vs. JSON path:** `name` is a direct member name. It is not interpreted as a JSON path. Use the corresponding `Update*` method when a nested path should be addressed or created.

Returns True for success, False for failure.

### JsonObject.AppendInt

`Chilkat 11.7.0 · ckpython · JsonObject · AppendInt · method · since 9.5.0.58`

```python
# name is a string

# value is an integer

status = jsonObject.AppendInt(name, value);
```

Appends a new JSON number member named `name` to this object. The integer value is stored as a JSON number.

**Member name vs. JSON path:** `name` is a direct member name. It is not interpreted as a JSON path. Use the corresponding `Update*` method when a nested path should be addressed or created.

Returns True for success, False for failure.

### JsonObject.AppendObject

`Chilkat 11.7.0 · ckpython · JsonObject · AppendObject · method · since 9.5.0.58`

```python
# returns a CkJsonObject

# name is a string

ret_jsonObject = jsonObject.AppendObject(name);
```

Appends a new JSON object member named `name` to this object. The newly appended object is empty and the returned `JsonObject` references that object in this document.

**Member name vs. JSON path:** `name` is a direct member name. It is not interpreted as a JSON path. Use the corresponding `Update*` method when a nested path should be addressed or created.

Returns `None` on failure

### JsonObject.AppendObject2

`Chilkat 11.7.0 · ckpython · JsonObject · AppendObject2 · method · since 11.0.0`

```python
# name is a string

# jsonObj is a CkJsonObject

status = jsonObject.AppendObject2(name, jsonObj);
```

Appends a new JSON object member named `name` to this object. A new empty object is created and `jsonObj` is updated to reference it. The method returns `True` on success.

**Member name vs. JSON path:** `name` is a direct member name. It is not interpreted as a JSON path. Use the corresponding `Update*` method when a nested path should be addressed or created.

Returns True for success, False for failure.

### JsonObject.AppendObjectCopy

`Chilkat 11.7.0 · ckpython · JsonObject · AppendObjectCopy · method · since 9.5.0.82`

```python
# name is a string

# jsonObj is a CkJsonObject

status = jsonObject.AppendObjectCopy(name, jsonObj);
```

Appends a new JSON object member named `name` to this object. The object is copied from `jsonObj`, so the appended object is independent of the source object.

**Member name vs. JSON path:** `name` is a direct member name. It is not interpreted as a JSON path. Use the corresponding `Update*` method when a nested path should be addressed or created.

Returns True for success, False for failure.

### JsonObject.AppendString

`Chilkat 11.7.0 · ckpython · JsonObject · AppendString · method · since 9.5.0.58`

```python
# name is a string

# value is a string

status = jsonObject.AppendString(name, value);
```

Appends a new JSON string member named `name` to this object. The value is JSON-escaped as needed when emitted.

**Member name vs. JSON path:** `name` is a direct member name. It is not interpreted as a JSON path. Use the corresponding `Update*` method when a nested path should be addressed or created.

Returns True for success, False for failure.

### JsonObject.AppendStringArray

`Chilkat 11.7.0 · ckpython · JsonObject · AppendStringArray · method · since 9.5.0.67`

```python
# name is a string

# values is a CkStringTable

status = jsonObject.AppendStringArray(name, values);
```

Appends a new JSON array member named `name` to this object. The array is populated with the strings contained in `values`.

**Member name vs. JSON path:** `name` is a direct member name. It is not interpreted as a JSON path. Use the corresponding `Update*` method when a nested path should be addressed or created.

Returns True for success, False for failure.

### JsonObject.ArrayAt

`Chilkat 11.7.0 · ckpython · JsonObject · ArrayAt · method · since 9.5.0.56`

```python
# returns a CkJsonArray

# index is an integer

ret_jsonArray = jsonObject.ArrayAt(index);
```

Returns the JSON array stored in the member at zero-based position `index`. The returned `JsonArray` references the existing array in the same document; it is not a detached copy.

**Type requirement:** The member at `index` must be an array. Use `TypeAt` when the member type is not already known.

Returns `None` on failure

### JsonObject.ArrayAt2

`Chilkat 11.7.0 · ckpython · JsonObject · ArrayAt2 · method · since 11.0.0`

```python
# index is an integer

# jarr is a CkJsonArray

status = jsonObject.ArrayAt2(index, jarr);
```

Updates `jarr` to reference the JSON array stored at zero-based member position `index` and returns `True` on success.

Returns True for success, False for failure.

### JsonObject.ArrayOf

`Chilkat 11.7.0 · ckpython · JsonObject · ArrayOf · method · since 9.5.0.56`

```python
# returns a CkJsonArray

# jsonPath is a string

ret_jsonArray = jsonObject.ArrayOf(jsonPath);
```

Returns the JSON array at `jsonPath`. The returned `JsonArray` references the existing array in the same document, so modifications through it are reflected in the parent JSON.

**JSON paths:** Paths are relative to this object and may include object-member separators and array indexes, for example `orders[0].items`.

Returns `None` on failure

### JsonObject.ArrayOf2

`Chilkat 11.7.0 · ckpython · JsonObject · ArrayOf2 · method · since 11.1.0`

```python
# jsonPath is a string

# jarr is a CkJsonArray

status = jsonObject.ArrayOf2(jsonPath, jarr);
```

Updates `jarr` to reference the JSON array at `jsonPath` and returns `True` on success.

Returns True for success, False for failure.

### JsonObject.BoolAt

`Chilkat 11.7.0 · ckpython · JsonObject · BoolAt · method · since 9.5.0.56`

```python
# index is an integer

retBool = jsonObject.BoolAt(index);
```

Returns the boolean value of the member at zero-based position `index`.

**Indexing:** Member indexes are based on the order maintained by this `JsonObject` instance. JSON objects are semantically unordered, so application protocols should normally identify values by member name rather than by position.

### JsonObject.BoolOf

`Chilkat 11.7.0 · ckpython · JsonObject · BoolOf · method · since 9.5.0.56`

```python
# jsonPath is a string

retBool = jsonObject.BoolOf(jsonPath);
```

Returns the boolean value at `jsonPath`. The path is evaluated relative to this `JsonObject`, after applying `PathPrefix` if one is set.

### JsonObject.BytesOf

`Chilkat 11.7.0 · ckpython · JsonObject · BytesOf · method · since 9.5.0.68`

```python
# jsonPath is a string

# encoding is a string

# bd is a CkBinData

status = jsonObject.BytesOf(jsonPath, encoding, bd);
```

Reads the string value at `jsonPath`, decodes it using `encoding` (for example, `base64` or `hex`), and appends the resulting bytes to `bd`.

**Binary-in-JSON convention:** The JSON member itself is text. The `encoding` argument tells Chilkat how that text represents the original bytes.

Returns True for success, False for failure.

### JsonObject.Clear

`Chilkat 11.7.0 · ckpython · JsonObject · Clear · method · since 9.5.0.76`

```python
jsonObject.Clear();
```

Removes all members from this JSON object, leaving an empty object equivalent to `{}`.

### JsonObject.CopyRef

`Chilkat 11.7.0 · ckpython · JsonObject · CopyRef · method · since 11.0.0`

```python
# jsonObj is a CkJsonObject

status = jsonObject.CopyRef(jsonObj);
```

Updates `jsonObj` so that it references the same JSON object as the caller. No JSON data is copied.

**Shared state:** After this call, modifications through either reference affect the same underlying JSON object.

Returns True for success, False for failure.

### JsonObject.DateOf

`Chilkat 11.7.0 · ckpython · JsonObject · DateOf · method · since 9.5.0.73`

```python
# jsonPath is a string

# dt is a CkDateTime

status = jsonObject.DateOf(jsonPath, dt);
```

Parses the date/time value at `jsonPath` and loads the result into `dt`. Recognized forms include ISO 8601 timestamps (for example, `2009-11-04T19:55:41Z`), RFC 822-style date/time strings, and Unix timestamp integers.

**JSON has no native date type:** Dates in JSON are application conventions, usually represented as strings or numbers. This method recognizes common conventions and converts them to `CkDateTime`.

Returns True for success, False for failure.

### JsonObject.Delete

`Chilkat 11.7.0 · ckpython · JsonObject · Delete · method · since 9.5.0.56`

```python
# name is a string

status = jsonObject.Delete(name);
```

Deletes the direct member named `name` from this JSON object.

**Not a path:** `name` is a member name, not a JSON path. Use a path-based operation when deleting or replacing a nested value requires navigation first.

Returns True for success, False for failure.

### JsonObject.DeleteAt

`Chilkat 11.7.0 · ckpython · JsonObject · DeleteAt · method · since 9.5.0.56`

```python
# index is an integer

status = jsonObject.DeleteAt(index);
```

Deletes the member at zero-based position `index`. Members after the deleted position shift toward the beginning.

Returns True for success, False for failure.

### JsonObject.DeleteRecords

`Chilkat 11.7.0 · ckpython · JsonObject · DeleteRecords · method · since 9.5.0.88`

```python
# arrayPath is a string

# relpath is a string

# value is a string

# caseSensitive is a boolean

retInt = jsonObject.DeleteRecords(arrayPath, relpath, value, caseSensitive);
```

Deletes every object record in the array at `arrayPath` whose value at relative path `relpath` equals or wildcard-matches `value`. The `caseSensitive` argument controls matching. Returns the number of records deleted.

### JsonObject.DtOf

`Chilkat 11.7.0 · ckpython · JsonObject · DtOf · method · since 9.5.0.73`

```python
# jsonPath is a string

# bLocal is a boolean

# dt is a CkDtObj

status = jsonObject.DtOf(jsonPath, bLocal, dt);
```

Parses the date/time value at `jsonPath` into `dt`. If `bLocal` is `True`, the destination receives local date/time fields; otherwise it receives UTC/GMT fields. Recognized inputs include ISO 8601 timestamps, RFC 822-style date/time strings, and Unix timestamp integers.

Returns True for success, False for failure.

### JsonObject.Emit

`Chilkat 11.7.0 · ckpython · JsonObject · Emit · method · since 9.5.0.56`

```python
# outStr is a CkString (output)

status = jsonObject.Emit(outStr);

retStr = jsonObject.emit();
```

Serializes the JSON document rooted at this object and returns the JSON text. Formatting is controlled by `EmitCompact` and, for pretty output, `EmitCrLf`.

**Object member order:** Chilkat emits members in its maintained order, but JSON object ordering is not semantically significant under RFC 8259.

Returns True for success, False for failure.

### JsonObject.EmitBd

`Chilkat 11.7.0 · ckpython · JsonObject · EmitBd · method · since 9.5.0.77`

```python
# bd is a CkBinData

status = jsonObject.EmitBd(bd);
```

Serializes this JSON and appends the resulting bytes to `bd`.

**Append behavior:** Existing data in the destination `BinData` is preserved.

Returns True for success, False for failure.

### JsonObject.EmitSb

`Chilkat 11.7.0 · ckpython · JsonObject · EmitSb · method · since 9.5.0.62`

```python
# sb is a CkStringBuilder

status = jsonObject.EmitSb(sb);
```

Serializes this JSON and appends the resulting text to `sb`. Formatting follows `EmitCompact` and `EmitCrLf`.

**Append behavior:** Existing text in the destination `StringBuilder` is preserved; the emitted JSON is added after it.

Returns True for success, False for failure.

### JsonObject.EmitWithSubs

`Chilkat 11.7.0 · ckpython · JsonObject · EmitWithSubs · method · since 9.5.0.67`

```python
# subs is a CkHashtable

# omitEmpty is a boolean

# outStr is a CkString (output)

status = jsonObject.EmitWithSubs(subs, omitEmpty, outStr);

retStr = jsonObject.emitWithSubs(subs, omitEmpty);
```

Serializes the JSON after substituting variables from `subs` into template strings. A placeholder such as `{$name}` is replaced by the corresponding hashtable value. Prefixing the variable name with `i.`, as in `{$i.count}`, emits the substituted value as a JSON integer instead of a quoted string.

If `omitEmpty` is `True`, members whose substituted result is an empty string or empty array are omitted from the emitted JSON.

**Template reuse:** This method does not require rebuilding the JSON template. It is commonly paired with `Predefine` and `LoadPredefined` when the same JSON shape is emitted repeatedly with different values.

Returns True for success, False for failure.

### JsonObject.FindObjectWithMember

`Chilkat 11.7.0 · ckpython · JsonObject · FindObjectWithMember · method · since 9.5.0.67`

```python
# returns a CkJsonObject

# name is a string

ret_jsonObject = jsonObject.FindObjectWithMember(name);
```

Recursively searches this JSON subtree for the first JSON object containing a direct member named `name`. Returns that object, or `None` if no matching object is found.

Returns `None` on failure

### JsonObject.FindObjectWithMember2

`Chilkat 11.7.0 · ckpython · JsonObject · FindObjectWithMember2 · method · since 11.0.0`

```python
# name is a string

# jsonObj is a CkJsonObject

status = jsonObject.FindObjectWithMember2(name, jsonObj);
```

Recursively searches this JSON subtree for the first object containing a direct member named `name`. On success, `jsonObj` is updated to reference the matching object and the method returns `True`.

Returns True for success, False for failure.

### JsonObject.FindRecord

`Chilkat 11.7.0 · ckpython · JsonObject · FindRecord · method · since 9.5.0.63`

```python
# returns a CkJsonObject

# arrayPath is a string

# relPath is a string

# value is a string

# caseSensitive is a boolean

ret_jsonObject = jsonObject.FindRecord(arrayPath, relPath, value, caseSensitive);
```

Searches the JSON array at `arrayPath` for the first object whose value at relative path `relPath` equals or wildcard-matches `value`. The `caseSensitive` argument controls string comparison. Returns the matching record object.

**Wildcard matching:** The search value may contain `*` to match zero or more characters. `relPath` is evaluated relative to each record object in the array.

Returns `None` on failure

### JsonObject.FindRecord2

`Chilkat 11.7.0 · ckpython · JsonObject · FindRecord2 · method · since 11.0.0`

```python
# arrayPath is a string

# relPath is a string

# value is a string

# caseSensitive is a boolean

# jsonObj is a CkJsonObject

status = jsonObject.FindRecord2(arrayPath, relPath, value, caseSensitive, jsonObj);
```

Searches the JSON array at `arrayPath` using the same matching rules as `FindRecord`. On success, `jsonObj` is updated to reference the first matching record and the method returns `True`.

**Reference semantics:** The destination references the record in the original JSON document; changes made through `jsonObj` modify that record.

Returns True for success, False for failure.

### JsonObject.FindRecordString

`Chilkat 11.7.0 · ckpython · JsonObject · FindRecordString · method · since 9.5.0.63`

```python
# arrayPath is a string

# relPath is a string

# value is a string

# caseSensitive is a boolean

# retRelPath is a string

# outStr is a CkString (output)

status = jsonObject.FindRecordString(arrayPath, relPath, value, caseSensitive, retRelPath, outStr);

retStr = jsonObject.findRecordString(arrayPath, relPath, value, caseSensitive, retRelPath);
```

Searches the JSON array at `arrayPath` for the first record whose `relPath` value equals or wildcard-matches `value`, then returns the value at `retRelPath` from that same record as a string.

**Typical use:** This is useful for lookups such as “find the record where `Name` is `Advertising` and return its `Id`.” The `*` wildcard may be used in `value`.

Returns True for success, False for failure.

### JsonObject.FirebaseApplyEvent

`Chilkat 11.7.0 · ckpython · JsonObject · FirebaseApplyEvent · method · since 9.5.0.58`

```python
# name is a string

# data is a string

status = jsonObject.FirebaseApplyEvent(name, data);
```

Applies a Firebase Realtime Database event to this JSON object. `name` should be `put` or `patch`, and `data` should contain event JSON such as `{"path":"/","data":{"a":1,"b":2}}`.

**Purpose:** This method is useful when maintaining a local JSON representation from Firebase server-sent events: `put` replaces the value at a path, while `patch` updates individual child keys.

Returns True for success, False for failure.

### JsonObject.FirebasePatch

`Chilkat 11.7.0 · ckpython · JsonObject · FirebasePatch · method · since 9.5.0.58`

```python
# jsonPath is a string

# jsonData is a string

status = jsonObject.FirebasePatch(jsonPath, jsonData);
```

Applies Firebase-style patch semantics at `jsonPath`. `jsonData` must contain a JSON object; each key in that object updates or adds the corresponding key at the target path.

**Relative path:** `jsonPath` is relative to this `JsonObject`.

Returns True for success, False for failure.

### JsonObject.FirebasePut

`Chilkat 11.7.0 · ckpython · JsonObject · FirebasePut · method · since 9.5.0.58`

```python
# jsonPath is a string

# value is a string

status = jsonObject.FirebasePut(jsonPath, value);
```

Applies Firebase-style put semantics at `jsonPath`, replacing or inserting the value at that path. `value` is JSON text and may represent an object, array, number, boolean, `null`, or a quoted JSON string.

**Quoted strings:** To store a string through this method, `value` must contain a valid JSON string literal, including its surrounding double quotes. Use `UpdateString` when you already have an ordinary application string.

Returns True for success, False for failure.

### JsonObject.GetDocRoot

`Chilkat 11.7.0 · ckpython · JsonObject · GetDocRoot · method · since 9.5.0.56`

```python
# returns a CkJsonObject

ret_jsonObject = jsonObject.GetDocRoot();
```

Returns a `JsonObject` reference to the root object of the JSON document containing this object. This can be called from any nested object reference.

**Shared document lifetime:** Nested `JsonObject` references share the same underlying JSON document. The document remains available while at least one such reference is retained by the application.

Returns `None` on failure

### JsonObject.GetDocRoot2

`Chilkat 11.7.0 · ckpython · JsonObject · GetDocRoot2 · method · since 11.0.0`

```python
# docRoot is a CkJsonObject

status = jsonObject.GetDocRoot2(docRoot);
```

Updates `docRoot` to reference the root object of the JSON document containing the caller and returns `True` on success.

**Reference semantics:** The destination is another reference into the same underlying document; it is not a copy.

Returns True for success, False for failure.

### JsonObject.HasMember

`Chilkat 11.7.0 · ckpython · JsonObject · HasMember · method · since 9.5.0.58`

```python
# jsonPath is a string

status = jsonObject.HasMember(jsonPath);
```

Returns `True` if a value exists at `jsonPath`; otherwise returns `False`.

**Missing vs. null:** A member whose JSON value is `null` still exists. Use `IsNullOf` to test specifically for JSON `null`.

Returns True for success, False for failure.

### JsonObject.IndexOf

`Chilkat 11.7.0 · ckpython · JsonObject · IndexOf · method · since 9.5.0.56`

```python
# name is a string

retInt = jsonObject.IndexOf(name);
```

Returns the zero-based position of the direct member named `name`, or `-1` if that member name is not found.

**Not a path:** `name` is searched only among the direct members of this object.

### JsonObject.IntAt

`Chilkat 11.7.0 · ckpython · JsonObject · IntAt · method · since 9.5.0.56`

```python
# index is an integer

retInt = jsonObject.IntAt(index);
```

Returns the integer value of the member at zero-based position `index`.

**Indexing:** Member indexes are based on the order maintained by this `JsonObject` instance. JSON objects are semantically unordered, so application protocols should normally identify values by member name rather than by position.

### JsonObject.IntOf

`Chilkat 11.7.0 · ckpython · JsonObject · IntOf · method · since 9.5.0.56`

```python
# jsonPath is a string

retInt = jsonObject.IntOf(jsonPath);
```

Returns the integer value at `jsonPath`. The path is evaluated relative to this `JsonObject`, after applying `PathPrefix` if one is set.

**Large numbers:** Use `StringOf` or the exact numeric-text APIs when a JSON integer may exceed the range of the language binding's integer type.

### JsonObject.IsNullAt

`Chilkat 11.7.0 · ckpython · JsonObject · IsNullAt · method · since 9.5.0.56`

```python
# index is an integer

retBool = jsonObject.IsNullAt(index);
```

Returns `True` if the member at zero-based position `index` has the JSON value `null`; otherwise returns `False`.

### JsonObject.IsNullOf

`Chilkat 11.7.0 · ckpython · JsonObject · IsNullOf · method · since 9.5.0.56`

```python
# jsonPath is a string

retBool = jsonObject.IsNullOf(jsonPath);
```

Returns `True` if the value at `jsonPath` is the JSON literal `null`; otherwise returns `False`.

**Null is a value:** JSON `null` is different from a missing member and from an empty string. Use `HasMember` when existence must be tested separately.

### JsonObject.JsonTypeOf

`Chilkat 11.7.0 · ckpython · JsonObject · JsonTypeOf · method · since 9.5.0.68`

```python
# jsonPath is a string

retInt = jsonObject.JsonTypeOf(jsonPath);
```

Returns an integer identifying the JSON type of the value at `jsonPath`. Returns `-1` if no member exists at that path.

|  |  |
| --- | --- |
| `1` | string |
| `2` | number |
| `3` | object |
| `4` | array |
| `5` | boolean |
| `6` | null |

### JsonObject.Load

`Chilkat 11.7.0 · ckpython · JsonObject · Load · method · since 9.5.0.56`

```python
# json is a string

status = jsonObject.Load(json);
```

Parses the JSON text in `json` and loads the parsed data into this object for DOM-style access and modification.

**JSON data model:** JSON values are strings, numbers, booleans, `null`, objects, or arrays. Object member names should be unique for interoperable JSON; RFC 8259 notes that consumers differ in how duplicate names are handled.

Returns True for success, False for failure.

### JsonObject.LoadBd

`Chilkat 11.7.0 · ckpython · JsonObject · LoadBd · method · since 9.5.0.77`

```python
# bd is a CkBinData

status = jsonObject.LoadBd(bd);
```

Parses JSON from the bytes contained in `bd` and loads it into this object.

Returns True for success, False for failure.

### JsonObject.LoadFile

`Chilkat 11.7.0 · ckpython · JsonObject · LoadFile · method · since 9.5.0.56`

```python
# path is a string

status = jsonObject.LoadFile(path);
```

Reads JSON text from the file at `path`, parses it, and loads the result into this object.

Returns True for success, False for failure.

### JsonObject.LoadPredefined

`Chilkat 11.7.0 · ckpython · JsonObject · LoadPredefined · method · since 9.5.0.67`

```python
# name is a string

status = jsonObject.LoadPredefined(name);
```

Loads this object from the predefined JSON document identified by `name`. Predefined documents are created with `Predefine`.

Returns True for success, False for failure.

### JsonObject.LoadSb

`Chilkat 11.7.0 · ckpython · JsonObject · LoadSb · method · since 9.5.0.62`

```python
# sb is a CkStringBuilder

status = jsonObject.LoadSb(sb);
```

Parses JSON from the current contents of `sb` and loads it into this object.

Returns True for success, False for failure.

### JsonObject.MakeCopy

`Chilkat 11.7.0 · ckpython · JsonObject · MakeCopy · method · since 11.0.0`

```python
# json is a CkJsonObject

status = jsonObject.MakeCopy(json);
```

Copies this JSON object into `json`. The destination receives an independent JSON copy rather than another reference to the same underlying object.

**Copy vs. reference:** Use `CopyRef` when two `JsonObject` instances should refer to the same JSON object instead of duplicating its data.

Returns True for success, False for failure.

### JsonObject.MoveMember

`Chilkat 11.7.0 · ckpython · JsonObject · MoveMember · method · since 9.5.0.80`

```python
# fromIndex is an integer

# toIndex is an integer

status = jsonObject.MoveMember(fromIndex, toIndex);
```

Moves the direct member at zero-based position `fromIndex` to `toIndex`. Use `toIndex = 0` to move it first or `-1` to move it last.

Returns True for success, False for failure.

### JsonObject.NameAt

`Chilkat 11.7.0 · ckpython · JsonObject · NameAt · method · since 9.5.0.56`

```python
# index is an integer

# outStr is a CkString (output)

status = jsonObject.NameAt(index, outStr);

retStr = jsonObject.nameAt(index);
```

Returns the name of the member at zero-based position `index`. Use this with `Size` and `TypeAt` to iterate through an object's direct members.

Returns True for success, False for failure.

### JsonObject.NewArrayOf

`Chilkat 11.7.0 · ckpython · JsonObject · NewArrayOf · method · since 11.4.0`

```python
# path is a string

# jArr is a string

status = jsonObject.NewArrayOf(path, jArr);
```

Creates a JSON array at `path` and loads that array from the JSON text in `jArr`. The supplied text should represent a JSON array.

**Difference from UpdateNewArray:** `UpdateNewArray` creates an empty array. `NewArrayOf` creates the array and immediately populates it from JSON text.

Returns True for success, False for failure.

### JsonObject.NewObjectOf

`Chilkat 11.7.0 · ckpython · JsonObject · NewObjectOf · method · since 11.4.0`

```python
# path is a string

# jObj is a string

status = jsonObject.NewObjectOf(path, jObj);
```

Creates a JSON object at `path` and loads that object from the JSON text in `jObj`. The supplied text should represent a JSON object.

**Difference from UpdateNewObject:** `UpdateNewObject` creates an empty object. `NewObjectOf` creates the object and immediately populates it from JSON text.

Returns True for success, False for failure.

### JsonObject.ObjectAt

`Chilkat 11.7.0 · ckpython · JsonObject · ObjectAt · method · since 9.5.0.56`

```python
# returns a CkJsonObject

# index is an integer

ret_jsonObject = jsonObject.ObjectAt(index);
```

Returns the JSON object stored in the member at zero-based position `index`. The returned `JsonObject` references the existing child object in the same document; changes made through it modify that document.

**Type requirement:** The member at `index` must be a JSON object. Use `TypeAt` when the type is not already known.

Returns `None` on failure

### JsonObject.ObjectAt2

`Chilkat 11.7.0 · ckpython · JsonObject · ObjectAt2 · method · since 11.0.0`

```python
# index is an integer

# jsonObj is a CkJsonObject

status = jsonObject.ObjectAt2(index, jsonObj);
```

Updates `jsonObj` to reference the JSON object stored at zero-based member position `index` and returns `True` on success.

Returns True for success, False for failure.

### JsonObject.ObjectOf

`Chilkat 11.7.0 · ckpython · JsonObject · ObjectOf · method · since 9.5.0.56`

```python
# returns a CkJsonObject

# jsonPath is a string

ret_jsonObject = jsonObject.ObjectOf(jsonPath);
```

Returns the JSON object at `jsonPath`. The returned object is a live reference into the same JSON document, not a copy.

**Relative paths:** A path is evaluated relative to the current object. Use `GetDocRoot` when access must start from the document root.

Returns `None` on failure

### JsonObject.ObjectOf2

`Chilkat 11.7.0 · ckpython · JsonObject · ObjectOf2 · method · since 11.0.0`

```python
# jsonPath is a string

# jsonObj is a CkJsonObject

status = jsonObject.ObjectOf2(jsonPath, jsonObj);
```

Updates `jsonObj` to reference the JSON object at `jsonPath` and returns `True` on success.

Returns True for success, False for failure.

### JsonObject.Predefine

`Chilkat 11.7.0 · ckpython · JsonObject · Predefine · method · since 9.5.0.67`

```python
# name is a string

status = jsonObject.Predefine(name);
```

Stores this JSON document in Chilkat's internal global collection of predefined JSON documents under `name`. If the name already exists, the predefined value is replaced.

**Template use:** After predefining a document, another `JsonObject` can load it by name with `LoadPredefined`.

Returns True for success, False for failure.

### JsonObject.Rename

`Chilkat 11.7.0 · ckpython · JsonObject · Rename · method · since 9.5.0.56`

```python
# oldName is a string

# newName is a string

status = jsonObject.Rename(oldName, newName);
```

Renames the direct member `oldName` to `newName`. The member value and its position are otherwise unchanged.

**JSON interoperability:** JSON object member names should be unique. Avoid renaming a member to a name already used by another member unless duplicate names are intentionally required.

Returns True for success, False for failure.

### JsonObject.RenameAt

`Chilkat 11.7.0 · ckpython · JsonObject · RenameAt · method · since 9.5.0.56`

```python
# index is an integer

# name is a string

status = jsonObject.RenameAt(index, name);
```

Renames the member at zero-based position `index` to `name`. The member value is not changed.

Returns True for success, False for failure.

### JsonObject.SetBoolAt

`Chilkat 11.7.0 · ckpython · JsonObject · SetBoolAt · method · since 9.5.0.56`

```python
# index is an integer

# value is a boolean

status = jsonObject.SetBoolAt(index, value);
```

Sets the member at zero-based position `index` to a JSON boolean value.

Returns True for success, False for failure.

### JsonObject.SetBoolOf

`Chilkat 11.7.0 · ckpython · JsonObject · SetBoolOf · method · since 9.5.0.56`

```python
# jsonPath is a string

# value is a boolean

status = jsonObject.SetBoolOf(jsonPath, value);
```

Sets the value at `jsonPath` to a JSON boolean value.

**Set vs. Update:** Use `UpdateBool` when missing objects or array positions along the path should be created automatically.

Returns True for success, False for failure.

### JsonObject.SetIntAt

`Chilkat 11.7.0 · ckpython · JsonObject · SetIntAt · method · since 9.5.0.56`

```python
# index is an integer

# value is an integer

status = jsonObject.SetIntAt(index, value);
```

Sets the member at zero-based position `index` to a JSON number value. The integer is emitted as a JSON number.

Returns True for success, False for failure.

### JsonObject.SetIntOf

`Chilkat 11.7.0 · ckpython · JsonObject · SetIntOf · method · since 9.5.0.56`

```python
# jsonPath is a string

# value is an integer

status = jsonObject.SetIntOf(jsonPath, value);
```

Sets the value at `jsonPath` to an integer JSON number.

**Set vs. Update:** Use `UpdateInt` when missing objects or array positions along the path should be created automatically.

Returns True for success, False for failure.

### JsonObject.SetNullAt

`Chilkat 11.7.0 · ckpython · JsonObject · SetNullAt · method · since 9.5.0.56`

```python
# index is an integer

status = jsonObject.SetNullAt(index);
```

Sets the member at zero-based position `index` to a JSON null value.

Returns True for success, False for failure.

### JsonObject.SetNullOf

`Chilkat 11.7.0 · ckpython · JsonObject · SetNullOf · method · since 9.5.0.56`

```python
# jsonPath is a string

status = jsonObject.SetNullOf(jsonPath);
```

Sets the value at `jsonPath` to a JSON null value.

**Set vs. Update:** Use `UpdateNull` when missing objects or array positions along the path should be created automatically.

Returns True for success, False for failure.

### JsonObject.SetNumberAt

`Chilkat 11.7.0 · ckpython · JsonObject · SetNumberAt · method · since 9.5.0.56`

```python
# index is an integer

# value is a string

status = jsonObject.SetNumberAt(index, value);
```

Sets the member at zero-based position `index` to a JSON number value. The `value` argument is the exact textual representation of the JSON number.

**JSON number syntax:** The text may contain an integer, fraction, or exponent. It must be valid JSON number syntax; leading zeros (except for zero itself), `NaN`, and infinity are not valid JSON numbers.

Returns True for success, False for failure.

### JsonObject.SetNumberOf

`Chilkat 11.7.0 · ckpython · JsonObject · SetNumberOf · method · since 9.5.0.56`

```python
# jsonPath is a string

# value is a string

status = jsonObject.SetNumberOf(jsonPath, value);
```

Sets the value at `jsonPath` to a JSON number value. The `value` argument supplies the exact textual form of the JSON number.

**Set vs. Update:** Use `UpdateNumber` when missing objects or array positions along the path should be created automatically.

**Precision:** Using numeric text avoids an intermediate conversion through a floating-point type and can therefore preserve large integers or application-specific decimal formatting.

Returns True for success, False for failure.

### JsonObject.SetStringAt

`Chilkat 11.7.0 · ckpython · JsonObject · SetStringAt · method · since 9.5.0.56`

```python
# index is an integer

# value is a string

status = jsonObject.SetStringAt(index, value);
```

Sets the member at zero-based position `index` to a JSON string value. The string is escaped as required when JSON is emitted.

Returns True for success, False for failure.

### JsonObject.SetStringOf

`Chilkat 11.7.0 · ckpython · JsonObject · SetStringOf · method · since 9.5.0.56`

```python
# jsonPath is a string

# value is a string

status = jsonObject.SetStringOf(jsonPath, value);
```

Sets the value at `jsonPath` to a JSON string value. The string is escaped as required when JSON is emitted.

**Set vs. Update:** Use `UpdateString` when missing objects or array positions along the path should be created automatically.

Returns True for success, False for failure.

### JsonObject.SizeOfArray

`Chilkat 11.7.0 · ckpython · JsonObject · SizeOfArray · method · since 9.5.0.56`

```python
# jsonPath is a string

retInt = jsonObject.SizeOfArray(jsonPath);
```

Returns the number of elements in the JSON array at `jsonPath`. Returns `-1` if the path does not resolve to an existing JSON array.

### JsonObject.Sort

`Chilkat 11.7.0 · ckpython · JsonObject · Sort · method · since 9.5.0.100`

```python
# ascending is a boolean

# caseSensitive is a boolean

jsonObject.Sort(ascending, caseSensitive);
```

Sorts this object's direct members by member name. `ascending` selects ascending or descending order, and `caseSensitive` controls how names are compared.

**JSON semantics:** Member ordering is not significant to JSON consumers, but sorting can make emitted JSON deterministic and easier to compare or review.

### JsonObject.StringAt

`Chilkat 11.7.0 · ckpython · JsonObject · StringAt · method · since 9.5.0.56`

```python
# index is an integer

# outStr is a CkString (output)

status = jsonObject.StringAt(index, outStr);

retStr = jsonObject.stringAt(index);
```

Returns the string value of the member at zero-based position `index`.

**Indexing:** Member indexes are based on the order maintained by this `JsonObject` instance. JSON objects are semantically unordered, so application protocols should normally identify values by member name rather than by position.

**Non-string values:** `StringOf` can also provide textual representations of scalar JSON values such as numbers, booleans, and `null`; use the type-specific methods when the JSON type itself matters.

Returns True for success, False for failure.

### JsonObject.StringOf

`Chilkat 11.7.0 · ckpython · JsonObject · StringOf · method · since 9.5.0.56`

```python
# jsonPath is a string

# outStr is a CkString (output)

status = jsonObject.StringOf(jsonPath, outStr);

retStr = jsonObject.stringOf(jsonPath);
```

Returns the value at `jsonPath` as text. For a JSON string, the string value is returned. Scalar non-string values such as numbers, booleans, and `null` are returned using their JSON textual representation.

**Type-sensitive code:** Use `JsonTypeOf`, `IntOf`, `BoolOf`, or `IsNullOf` when the distinction between JSON types is important.

Returns True for success, False for failure.

### JsonObject.StringOfEquals

`Chilkat 11.7.0 · ckpython · JsonObject · StringOfEquals · method · since 9.5.0.96`

```python
# jsonPath is a string

# value is a string

# caseSensitive is a boolean

retBool = jsonObject.StringOfEquals(jsonPath, value, caseSensitive);
```

Returns `True` if the textual value at `jsonPath` equals `value` according to the `caseSensitive` setting; otherwise returns `False`.

### JsonObject.StringOfSb

`Chilkat 11.7.0 · ckpython · JsonObject · StringOfSb · method · since 9.5.0.68`

```python
# jsonPath is a string

# sb is a CkStringBuilder

status = jsonObject.StringOfSb(jsonPath, sb);
```

Retrieves the value at `jsonPath` as text and appends it to `sb`.

**Append behavior:** Existing contents of the destination `StringBuilder` are preserved.

Returns True for success, False for failure.

### JsonObject.Swap

`Chilkat 11.7.0 · ckpython · JsonObject · Swap · method · since 9.5.0.76`

```python
# index1 is an integer

# index2 is an integer

status = jsonObject.Swap(index1, index2);
```

Swaps the positions of the direct members at zero-based indexes `index1` and `index2`. Member names and values are unchanged.

**Ordering:** JSON object order is not semantically significant, but Chilkat preserves an order for index-based access and emission.

Returns True for success, False for failure.

### JsonObject.TypeAt

`Chilkat 11.7.0 · ckpython · JsonObject · TypeAt · method · since 9.5.0.58`

```python
# index is an integer

retInt = jsonObject.TypeAt(index);
```

Returns an integer identifying the JSON type of the member at zero-based position `index`. Returns `-1` if no member exists at that index.

|  |  |
| --- | --- |
| `1` | string |
| `2` | number |
| `3` | object |
| `4` | array |
| `5` | boolean |
| `6` | null |

### JsonObject.UIntOf

`Chilkat 11.7.0 · ckpython · JsonObject · UIntOf · method · since 9.5.0.96`

```python
# jsonPath is a string

retInt = jsonObject.UIntOf(jsonPath);
```

Returns the unsigned integer value at `jsonPath`.

### JsonObject.UpdateBd

`Chilkat 11.7.0 · ckpython · JsonObject · UpdateBd · method · since 9.5.0.68`

```python
# jsonPath is a string

# encoding is a string

# bd is a CkBinData

status = jsonObject.UpdateBd(jsonPath, encoding, bd);
```

Updates the value at `jsonPath` to a JSON string value, or creates the member and any missing path components as needed. The bytes in `bd` are first encoded according to `encoding` (for example, `base64` or `hex`) and the encoded text is stored as the JSON string value.

**Path-based operation:** `jsonPath` is interpreted using `DelimiterChar`, `PathPrefix`, and the `I`/`J`/`K` index substitutions.

**Binary data in JSON:** JSON has no native byte-array type. Binary content must therefore be represented using a textual encoding agreed upon by the producer and consumer.

Returns True for success, False for failure.

### JsonObject.UpdateBool

`Chilkat 11.7.0 · ckpython · JsonObject · UpdateBool · method · since 9.5.0.63`

```python
# jsonPath is a string

# value is a boolean

status = jsonObject.UpdateBool(jsonPath, value);
```

Updates the value at `jsonPath` to a JSON boolean value, or creates the member and any missing path components as needed.

**Path-based operation:** `jsonPath` is interpreted using `DelimiterChar`, `PathPrefix`, and the `I`/`J`/`K` index substitutions.

Returns True for success, False for failure.

### JsonObject.UpdateInt

`Chilkat 11.7.0 · ckpython · JsonObject · UpdateInt · method · since 9.5.0.63`

```python
# jsonPath is a string

# value is an integer

status = jsonObject.UpdateInt(jsonPath, value);
```

Updates the value at `jsonPath` to a JSON number value, or creates the member and any missing path components as needed. The integer value is stored as a JSON number.

**Path-based operation:** `jsonPath` is interpreted using `DelimiterChar`, `PathPrefix`, and the `I`/`J`/`K` index substitutions.

Returns True for success, False for failure.

### JsonObject.UpdateNewArray

`Chilkat 11.7.0 · ckpython · JsonObject · UpdateNewArray · method · since 9.5.0.75`

```python
# jsonPath is a string

status = jsonObject.UpdateNewArray(jsonPath);
```

Creates or replaces the value at `jsonPath` with a new empty JSON array. Missing path components are created automatically as needed.

Returns True for success, False for failure.

### JsonObject.UpdateNewObject

`Chilkat 11.7.0 · ckpython · JsonObject · UpdateNewObject · method · since 9.5.0.75`

```python
# jsonPath is a string

status = jsonObject.UpdateNewObject(jsonPath);
```

Creates or replaces the value at `jsonPath` with a new empty JSON object. Missing path components are created automatically as needed.

Returns True for success, False for failure.

### JsonObject.UpdateNull

`Chilkat 11.7.0 · ckpython · JsonObject · UpdateNull · method · since 9.5.0.65`

```python
# jsonPath is a string

status = jsonObject.UpdateNull(jsonPath);
```

Updates the value at `jsonPath` to a JSON null value, or creates the member and any missing path components as needed.

**Path-based operation:** `jsonPath` is interpreted using `DelimiterChar`, `PathPrefix`, and the `I`/`J`/`K` index substitutions.

Returns True for success, False for failure.

### JsonObject.UpdateNumber

`Chilkat 11.7.0 · ckpython · JsonObject · UpdateNumber · method · since 9.5.0.65`

```python
# jsonPath is a string

# numericStr is a string

status = jsonObject.UpdateNumber(jsonPath, numericStr);
```

Updates the value at `jsonPath` to a JSON number value, or creates the member and any missing path components as needed. The `numericStr` argument is stored as the exact textual representation of the JSON number.

**Path-based operation:** `jsonPath` is interpreted using `DelimiterChar`, `PathPrefix`, and the `I`/`J`/`K` index substitutions.

**When to use:** Use `UpdateNumber` instead of `UpdateInt` for decimal/exponent forms, very large integers, or when preserving exact numeric text is important.

Returns True for success, False for failure.

### JsonObject.UpdateSb

`Chilkat 11.7.0 · ckpython · JsonObject · UpdateSb · method · since 9.5.0.68`

```python
# jsonPath is a string

# sb is a CkStringBuilder

status = jsonObject.UpdateSb(jsonPath, sb);
```

Updates the value at `jsonPath` to a JSON string value, or creates the member and any missing path components as needed. The new string value is taken from the contents of `sb`.

**Path-based operation:** `jsonPath` is interpreted using `DelimiterChar`, `PathPrefix`, and the `I`/`J`/`K` index substitutions.

Returns True for success, False for failure.

### JsonObject.UpdateString

`Chilkat 11.7.0 · ckpython · JsonObject · UpdateString · method · since 9.5.0.63`

```python
# jsonPath is a string

# value is a string

status = jsonObject.UpdateString(jsonPath, value);
```

Updates the value at `jsonPath` to a JSON string value, or creates the member and any missing path components as needed. The supplied string is JSON-escaped as needed.

**Path-based operation:** `jsonPath` is interpreted using `DelimiterChar`, `PathPrefix`, and the `I`/`J`/`K` index substitutions.

**Version note:** Chilkat versions prior to 9.5.0.68 did not correctly escape all characters for this method. Version 9.5.0.68 and later correct that behavior.

Returns True for success, False for failure.

### JsonObject.UpdateUInt

`Chilkat 11.7.0 · ckpython · JsonObject · UpdateUInt · method · since 9.5.0.96`

```python
# jsonPath is a string

# value is an integer

status = jsonObject.UpdateUInt(jsonPath, value);
```

Updates the value at `jsonPath` to a JSON number value, or creates the member and any missing path components as needed. The unsigned integer is stored as a JSON number.

**Path-based operation:** `jsonPath` is interpreted using `DelimiterChar`, `PathPrefix`, and the `I`/`J`/`K` index substitutions.

Returns True for success, False for failure.

### JsonObject.WriteFile

`Chilkat 11.7.0 · ckpython · JsonObject · WriteFile · method · since 9.5.0.76`

```python
# path is a string

status = jsonObject.WriteFile(path);
```

Serializes this JSON and writes it to the file at `path`. Output formatting follows `EmitCompact` and `EmitCrLf`.

Returns True for success, False for failure.

## Deprecated members — do not use in new code

| Member | Kind | Deprecated in | Use instead |
|---|---|---|---|
| `Clone` | method | before 11.6.1 | `MakeCopy` |

## Related classes

[`BinData`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/ckpython/classes/BinData.md), [`CkDateTime`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/ckpython/classes/CkDateTime.md), [`DtObj`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/ckpython/classes/DtObj.md), [`Hashtable`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/ckpython/classes/Hashtable.md), [`JsonArray`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/ckpython/classes/JsonArray.md), [`StringBuilder`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/ckpython/classes/StringBuilder.md), [`StringTable`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/ckpython/classes/StringTable.md)

