DEV Community

Cover image for arkts json parsing
liu yang
liu yang

Posted on

arkts json parsing

ArkTS JSON Parsing and Generation

Module Introduction

This module enables the conversion of JSON text to corresponding ArkTS objects or values, as well as the conversion of objects to JSON strings.

Importing the Module

import { JSON } from '@kit.ArkTS';
Enter fullscreen mode Exit fullscreen mode

JSON Parsing

Using JSON.parse

parse(text: string, reviver?: Transformer, options?: ParseOptions): Object | null
Enter fullscreen mode Exit fullscreen mode

This function parses a JSON string to generate the corresponding ArkTS object or null.

  • ** Supported from API version 12 in meta - services.
  • System Capability: SystemCapability.Utils.Lang

Parameters:

Parameter Name Type Required Description
text string Yes A valid JSON string.
reviver Transformer No A transformation function that can modify the original values generated by parsing. Default: undefined.
options ParseOptions No Configuration for parsing that can control the generated type. Default: undefined.

Return Value:

Type Description
Object null

Error Codes:

Error Code ID Error Message
401 Parameter error. Possible causes: 1. Mandatory parameters are missing; 2. Incorrect parameter types; 3. Parameter verification failed.

Example:

let jsonText = '{"name": "John", "age": 30, "city": "ChongQing"}';
let obj = JSON.parse(jsonText);
console.info("getname --- > " + (obj as object)?.["name"]);
console.info("getage --- > " + (obj as object)?.["age"]);
console.info("getcity --- > " + (obj as object)?.["city"]);
Enter fullscreen mode Exit fullscreen mode

In this example, we use the JSON.parse method to obtain the obj object and then retrieve values using (obj as object)?.["name"].

Example with interface:

interface Person {
  name: string;
  age: number;
  city: string;
}
let jsonText = '{"name": "John", "age": 30, "city": "ChongQing"}';
let person: Person = JSON.parse(jsonText) as Person;
console.info("personinterface getpersonname --- > " + person.name);
console.info("personinterface getpersonage --- > " + person.age);
console.info("personinterface getpersoncity --- > " + person.city);
Enter fullscreen mode Exit fullscreen mode

Example with class:

class Persontest {
  name: string = '';
  age: number = 0;
  city: string = '';
}
let jsonText = '{"name": "John", "age": 30, "city": "ChongQing"}';
let persontest: Persontest = JSON.parse(jsonText.toString()) as Persontest;
console.info("personclass getpersontest --- > " + persontest.name);
console.info("personclass getpersontest --- > " + persontest.age);
console.info("personclass getpersontest --- > " + persontest.city);
Enter fullscreen mode Exit fullscreen mode

Converting Objects or Arrays to JSON - JSON.stringify

This method converts an ArkTS object or array to a JSON string, supporting linear container conversion. Non - linear containers are not supported.

  • ** Supported from API version 12 in meta - services.
  • System Capability: SystemCapability.Utils.Lang

Parameters:

Parameter Name Type Required Description
value Object Yes The ArkTS object or array to be converted. Linear containers are supported for conversion, while non - linear containers are not.
replacer Transformer No During serialization, each property of the value being serialized is transformed and processed by this function. Default: undefined.
space string number No

Return Value:

Type Description
string The converted JSON string.

Example:

interface Person {
  name: string;
  age: number;
  city: string;
}
let testobj = { "name": "John", "age": 30, "city": "ChongQing" } as Person;
let str1 = JSON.stringify(testobj);
console.info("jsonstringify getstr1 --- > " + str1);
Enter fullscreen mode Exit fullscreen mode

Top comments (0)