---
id: object/codeunit/5459
type: object
title: Codeunit 5459 "JSON Management"
summary: Codeunit 5459 "JSON Management" in Base Application (System.Text). 59 public procedures, 1 events. Present since at least BC23, still in BC30.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: null
  last_changed: null
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: e6caa89856c5866b155cdf375d9b035b908c98061a0818b57a3a91cbac45e87e
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/JSONManagement.Codeunit.al
    title: src/Layers/W1/BaseApp/JSONManagement.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 5459
name: JSON Management
namespace: System.Text
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 67
  events: 1
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 4
  called_by: 22
  implements: 0
---

# Codeunit 5459 "JSON Management"

> Codeunit 5459 "JSON Management" in Base Application (System.Text). 59 public procedures, 1 events. Present since at least BC23, still in BC30.

Base Application · System.Text · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/JSONManagement.Codeunit.al) · facts from BC29

## Events published

- `OnBeforeAddJPropertyToJObject(var JObject: DotNet "JObject"; var JProperty: DotNet "JProperty"; propertyName: Text; value: Variant; var IsHandled: Boolean)` (integration)

## Procedures

- `InitializeCollection(JSONString: Text)`
- `InitializeEmptyCollection()`
- `InitializeObject(JSONString: Text)`
- `InitializeObjectFromJObject(NewJsonObject: DotNet JObject)`
- `InitializeCollectionFromJArray(NewJsonArray: DotNet JArray)`
- `InitializeEmptyObject()`
- `InitializeFromString(JSONString: Text): Boolean`
- `GetJSONObject(var JObject: DotNet JObject)`
- `GetJsonArray(var JArray: DotNet JArray)`
- `GetObjectFromCollectionByIndex(var Object: Text; Index: Integer): Boolean`
- `GetJObjectFromCollectionByIndex(var JObject: DotNet JObject; Index: Integer): Boolean`
- `GetJObjectFromCollectionByPropertyValue(var JObject: DotNet JObject; propertyName: Text; value: Text): Boolean`
- `GetPropertyValueFromJObjectByName(JObject: DotNet JObject; propertyName: Text; var value: Variant): Boolean`
- `GetPropertyValueByName(propertyName: Text; var value: Variant): Boolean`
- `GetPropertyValueFromJObjectByPathSetToFieldRef(JObject: DotNet JObject; propertyPath: Text; var FieldRef: FieldRef): Boolean`
- `GetPropertyValueFromJObjectByPath(JObject: DotNet JObject; fullyQualifiedPropertyName: Text; var value: Variant): Boolean`
- `GetStringPropertyValueFromJObjectByName(JObject: DotNet JObject; propertyName: Text; var value: Text): Boolean`
- `GetStringPropertyValueByName(propertyName: Text; var value: Text): Boolean`
- `GetStringPropertyValueFromJObjectByPath(JObject: DotNet JObject; fullyQualifiedPropertyName: Text; var value: Text): Boolean`
- `GetEnumPropertyValueFromJObjectByName(JObject: DotNet JObject; propertyName: Text; var value: Option)`
- `GetBoolPropertyValueFromJObjectByName(JObject: DotNet JObject; propertyName: Text; var value: Boolean): Boolean`
- `GetArrayPropertyValueFromJObjectByName(JObject: DotNet JObject; propertyName: Text; var JArray: DotNet JArray): Boolean`
- `GetArrayPropertyValueAsStringByName(propertyName: Text; var value: Text): Boolean`
- `GetObjectPropertyValueFromJObjectByName(JObject: DotNet JObject; propertyName: Text; var JSubObject: DotNet JObject): Boolean`
- `GetDecimalPropertyValueFromJObjectByName(JObject: DotNet JObject; propertyName: Text; var value: Decimal): Boolean`
- `GetGuidPropertyValueFromJObjectByName(JObject: DotNet JObject; propertyName: Text; var value: Guid): Boolean`
- `GetStringValueFromJObject(JObject: DotNet JObject; var value: Text)`
- `AddJArrayToJObject(var JObject: DotNet JObject; propertyName: Text; value: Variant)`
- `AddJObjectToJObject(var JObject: DotNet JObject; propertyName: Text; value: Variant)`
- `AddJObjectToJArray(var JArray: DotNet JArray; value: Variant)`
- `AddJPropertyToJObject(var JObject: DotNet JObject; propertyName: Text; value: Variant)`
- `AddNullJPropertyToJObject(var JObject: DotNet JObject; propertyName: Text)`
- `AddJValueToJObject(var JObject: DotNet JToken; value: Variant)`
- `AddJObjectToCollection(JObject: DotNet JObject)`
- `AddJArrayContentToCollection(JArray: DotNet JArray)`
- `ReplaceOrAddJPropertyInJObject(var JObject: DotNet JObject; propertyName: Text; value: Variant): Boolean`
- `ReplaceOrAddDescendantJPropertyInJObject(var JObject: DotNet JObject; fullyQualifiedPropertyName: Text; value: Variant): Boolean`
- `GetCollectionCount(): Integer`
- `WriteCollectionToString(): Text`
- `WriteObjectToString(): Text`
- `FormatDecimalToJSONProperty(Value: Decimal; PropertyName: Text): Text`
- `XMLTextToJSONText(Xml: Text): Text`
- `JSONTextToXMLText(Json: Text; DocumentElementName: Text): Text`
- `TryParseJObjectFromString(var JObject: DotNet JObject; StringToParse: Variant)`
- `TryParseJArrayFromString(var JsonArray: DotNet JArray; StringToParse: Variant)`
- `SetValue(Path: Text; Value: Variant)`
- `GetValue(Path: Text): Text`
- `GetValueAndSetToRecFieldNo(RecordRef: RecordRef; PropertyPath: Text; FieldNo: Integer): Boolean`
- `HasValue(Name: Text; Value: Text): Boolean`
- `AddArrayValue(Value: Variant)`
- `AddJson(Path: Text; JsonString: Text)`
- `AddJsonArray(Path: Text; JsonArrayString: Text)`
- `SelectTokenFromRoot(Path: Text): Boolean`
- `ReadProperties(): Boolean`
- `GetNextProperty(var Name: Text; var Value: Text): Boolean`
- `SelectItemFromRoot(Path: Text; Index: Integer): Boolean`
- `GetCount(): Integer`
- `SetJsonWebResponseError(var JsonString: Text; code: Text; name: Text; description: Text)`
- `GetJsonWebResponseError(JsonString: Text; var code: Text; var name: Text; var description: Text): Boolean`

Plus 7 local procedures.

## Triggers

OnRun

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 4100 "Temp Blob"](../codeunit/4100.md) (2 calls: `TryReadAsBase64 → CreateOutStream`, `TryReadAsBase64 → ToRecordRef`)
- [Codeunit 4110 "Base64 Convert"](../codeunit/4110.md) (1 call: `TryReadAsBase64 → FromBase64`)
- [Codeunit 5302 "Outlook Synch. Type Conv"](../codeunit/5302.md) (1 call: `GetPropertyValueFromJObjectByPathSetToFieldRef → TextToOptionValue`)
- [Codeunit 6224 "XML DOM Management"](../codeunit/6224.md) (1 call: `XMLTextToJSONText → LoadXMLDocumentFromText`)

## Called by

- [Codeunit 5458 "Graph Collection Mgt - Contact"](../codeunit/5458.md) (198 calls: `AddBusinessType → AddJPropertyToJObject`, `AddBusinessType → GetJSONObject`, `AddBusinessType → InitializeEmptyObject`, …)
- [Codeunit 5468 "Graph Mgt - Complex Types"](../codeunit/5468.md) (39 calls: `ApplyPostalAddressFromJSON → GetJSONObject`, `ApplyPostalAddressFromJSON → GetStringPropertyValueFromJObjectByName`, `ApplyPostalAddressFromJSON → InitializeObject`, …)
- [Codeunit 1485 "Rolecenter Selector Mgt."](../codeunit/1485.md) (21 calls: `BuildJsonFromPageActionTable → AddJArrayToJObject`, `BuildJsonFromPageActionTable → AddJObjectToJArray`, `BuildJsonFromPageActionTable → AddJPropertyToJObject`, …)
- [Codeunit 6060 "Hybrid Deployment"](../codeunit/6060.md) (20 calls: `CreateIntegrationRuntime → GetStringPropertyValueByName`, `CreateIntegrationRuntime → InitializeObject`, `GetIntegrationRuntimeKeys → GetStringPropertyValueByName`, …)
- [Codeunit 6154 "API Webhook Notification Send"](../codeunit/6154.md) (16 calls: `AddPayloadPerSubscription → AddJObjectToJArray`, `DateTimeToUtcString → AddJPropertyToJObject`, `DateTimeToUtcString → GetJSONObject`, …)
- [Codeunit 9033 "Invite External Accountant"](../codeunit/9033.md) (14 calls: `GetMessageFromErrorJSON → GetJSONObject`, `GetMessageFromErrorJSON → GetStringPropertyValueFromJObjectByName`, `GetMessageFromErrorJSON → InitializeObject`, …)
- [Codeunit 5470 "Graph Collection Mgt - Item"](../codeunit/5470.md) (11 calls: `ItemUnitOfMeasureToJSON → AddJObjectToJObject`, `ItemUnitOfMeasureToJSON → AddJPropertyToJObject`, `ItemUnitOfMeasureToJSON → GetJSONObject`, …)
- [Codeunit 1297 "Http Web Request Mgt."](../codeunit/1297.md) (10 calls: `ParseFaultJsonResponse → GetJsonWebResponseError`, `ParseWebResponseError → GetValue`, `ParseWebResponseError → InitializeFromString`, …)
- [Codeunit 2021 "Image Analysis Result"](../codeunit/2021.md) (10 calls: `DominantColor → GetJObjectFromCollectionByIndex`, `DominantColor → InitializeCollectionFromJArray`, `DominantColorBackground → GetStringPropertyValueFromJObjectByName`, …)
- [Codeunit 4014 "Notification Handler"](../codeunit/4014.md) (10 calls: `GetExtensionRefreshErrorMessage → GetStringPropertyValueByName`, `GetExtensionRefreshErrorMessage → InitializeObject`, `HandleServiceNotification → GetStringPropertyValueByName`, …)
- [Codeunit 20124 "AMC Bank REST Request Mgt."](../codeunit/20124.md) (9 calls: `CleanSecureContent → GetValue`, `CleanSecureContent → InitializeObject`, `CleanSecureContent → SetValue`, …)
- [Codeunit 4016 "Hybrid GP Management"](../codeunit/4016.md) (8 calls: `HandleInitializationOfGPSynchronization → GetStringPropertyValueByName`, `HandleInitializationOfGPSynchronization → InitializeObject`, `UpdateStatusOnHybridReplicationCompleted → GetArrayPropertyValueAsStringByName`, …)
- [Codeunit 47013 "SL Hybrid Management"](../codeunit/47013.md) (8 calls: `InitializationofSLSynchronization → GetStringPropertyValueByName`, `InitializationofSLSynchronization → InitializeObject`, `UpdateStatusOnHybridReplicationCompleted → GetArrayPropertyValueAsStringByName`, …)
- [Codeunit 1290 "SOAP Web Service Request Mgt."](../codeunit/1290.md) (6 calls: `GetTokenDetailsAsJson → AddJPropertyToJObject`, `GetTokenDetailsAsJson → GetJSONObject`, `GetTokenDetailsAsJson → InitializeEmptyObject`, …)
- [Page 20109 "AMC Bank Signup to Service"](../page/20109.md) (6 calls: `GetLoginURL → AddJPropertyToJObject`, `GetLoginURL → GetJSONObject`, `GetLoginURL → GetValue`, …)
- [Codeunit 2023 "Image Analysis Wrapper V3.2"](../codeunit/2023.md) (5 calls: `LogCorrelationToTelemetry → GetGuidPropertyValueFromJObjectByName`, `LogCorrelationToTelemetry → GetJSONObject`, `SendRequest → GetJSONObject`, …)
- [Codeunit 4001 "Hybrid Cloud Management"](../codeunit/4001.md) (4 calls: `CheckFixDataOnReplicationCompleted → GetStringPropertyValueByName`, `CheckFixDataOnReplicationCompleted → InitializeObject`, `CompaniesReplicatedSuccessfully → GetStringPropertyValueByName`, …)
- [Table 469 "Workflow Webhook Subscription"](../table/469.md) (4 calls: `TryInitializeCollection → GetCollectionCount`, `TryInitializeCollection → InitializeCollectionFromJArray`, `TryParseJson → GetJSONObject`, …)
- [Codeunit 2024 "Image Analysis Wrapper V1.0"](../codeunit/2024.md) (3 calls: `TryInvokeAnalysisInternal → GetJSONObject`, `TryInvokeAnalysisInternal → GetStringPropertyValueFromJObjectByName`, `TryInvokeAnalysisInternal → InitializeObject`)
- [Table 6707 "Booking Item"](../table/6707.md) (3 calls: `GetDate → GetJSONObject`, `GetDate → GetStringPropertyValueFromJObjectByName`, `GetDate → InitializeObject`)
- [Codeunit 4026 "W1 Management"](../codeunit/4026.md) (2 calls: `SetUpgradePendingOnReplicationRunCompleted → GetPropertyValueByName`, `SetUpgradePendingOnReplicationRunCompleted → InitializeObject`)
- [Codeunit 5465 "Graph Mgt - General Tools"](../codeunit/5465.md) (1 call: `GetMandatoryStringPropertyFromJObject → GetStringPropertyValueFromJObjectByName`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: none

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "codeunit", object_name: "JSON Management")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
