---
name: "parseJSON"
mode: "api"
versionRequirements:
  - { name: "@ray-js/panel-sdk", version: "1.0.0" }
title: "JSON"
summary: "介绍 JSON 字符串解析与对象序列化工具 parseJSON 和 stringifyJSON 的用法。"
questions:
  - "parseJSON函数与原生JSON.parse有什么区别？解析失败时如何处理？"
  - "stringifyJSON函数如何将数据转换为JSON字符串？支持哪些数据类型？"
  - "如何从@ray-js/panel-sdk的utils中引入parseJSON和stringifyJSON？"
  - "parseJSON函数传入'{a:1, b:2}'格式的字符串能否正确解析？"
  - "stringifyJSON([1,2,3])的返回值是什么格式的字符串？"
  - "parseJSON在解析设备返回的JSON数据时相比原生方法有什么优势？"
  - "面板开发中哪些场景需要使用parseJSON解析设备数据？"
  - "stringifyJSON函数在存储设备配置数据时有哪些典型用法？"
  - "parseJSON函数是否能处理嵌套对象的JSON字符串？"
  - "JSON工具函数在处理raw类型DP数据转换中有什么作用？"
---

## parseJSON

> [VERSION] @ray-js/panel-sdk >= 1.0.0

> 💡 该函数不会抛出异常，解析失败时会静默返回原始字符串。适用于不确定输入是否为合法 JSON 的场景。

### 描述

安全地将 JSON 字符串解析为对象

### 参数

`Params`

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `str` | `string` | 是 | 需要解析的 JSON 字符串 |

### 返回值

类型: `string \| Record<string, never>`

解析后的对象；若解析失败则返回原始字符串；若输入为 undefined 则返回空对象

### 示例代码

#### 基础用法

```ts
import { utils } from '@ray-js/panel-sdk';

const { parseJSON } = utils;

parseJSON('{"a":1}');  // { a: 1 }
parseJSON('not json'); // 'not json'
parseJSON(undefined);  // {}
```


---
name: "stringifyJSON"
mode: "api"
versionRequirements:
  - { name: "@ray-js/panel-sdk", version: "1.0.0" }
title: "JSON"
summary: "介绍 JSON 字符串解析与对象序列化工具 parseJSON 和 stringifyJSON 的用法。"
questions:
  - "parseJSON函数与原生JSON.parse有什么区别？解析失败时如何处理？"
  - "stringifyJSON函数如何将数据转换为JSON字符串？支持哪些数据类型？"
  - "如何从@ray-js/panel-sdk的utils中引入parseJSON和stringifyJSON？"
  - "parseJSON函数传入'{a:1, b:2}'格式的字符串能否正确解析？"
  - "stringifyJSON([1,2,3])的返回值是什么格式的字符串？"
  - "parseJSON在解析设备返回的JSON数据时相比原生方法有什么优势？"
  - "面板开发中哪些场景需要使用parseJSON解析设备数据？"
  - "stringifyJSON函数在存储设备配置数据时有哪些典型用法？"
  - "parseJSON函数是否能处理嵌套对象的JSON字符串？"
  - "JSON工具函数在处理raw类型DP数据转换中有什么作用？"
---
## stringifyJSON

> [VERSION] @ray-js/panel-sdk >= 1.0.0

> 💡 该函数不会抛出异常，序列化失败时会返回原始数据的字符串形式。

### 描述

将给定数据安全地序列化为 JSON 字符串

### 参数

`Params`

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `data` | `any` | 是 | 要序列化的数据，可以是任意类型 |

### 返回值

无


### 示例代码

#### 基础用法

```ts
import { utils } from '@ray-js/panel-sdk';

const { stringifyJSON } = utils;

stringifyJSON({ a: 1 }); // '{"a":1}'
stringifyJSON('hello');  // 'hello'
stringifyJSON(null);     // ''
stringifyJSON(undefined); // ''
```
