HarmonyOS 鸿蒙Next JSON 解析数据

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

HarmonyOS 鸿蒙Next JSON 解析数据

接口返回数据之后 ,要自定义JSON解析,没有查到相关自定义解析json的资料,官方是否有这样的资料

3 回复

可以引入三方库解析json对象

1.引入三方库:

ohpm install class-transformer

ohpm install reflect-metadata

json转对象demo:

深色代码主题
复制
import { Type, plainToClass } from 'class-transformer'

import “reflect-metadata”

export class CardTable {

‘soapen:Envelope’: Body3

@xmlns:soapenv’: string

}

export class Body3 {

‘soapenv:Body’: Three3

}

export class Three3 {

‘CM-MOB-IF06’: Four3

}

export class Four3 {

output?: data3

input?: Five3

}

export class data3 {

chargeHis?: Alldata4[]

}

export class Alldata4 {

PayAmt?: string

PaySq?: string

PayDate?: string

}

export class Five3 {

UniUserCode?: string

}

function a() {

let jsonStr=’{ “global”: {“soapen:Envelope”: {“soapenv:Body”:{“CM-MOB-IF06”:{“output”:{“chargeHis”:[{“PayAmt”:“payamt01”,“PaySq”:“PaySq01”,“PayDate”:“PayDate01”}]},“input”:{“UniUserCode”:“uniUserCode01”}}}}}}’

let mapInfo01: Record<string, Object> = JSON.parse(jsonStr) as Record<string, Object>

let cardInfo02 = plainToClass(CardTable, mapInfo01.global);

console.info(“mapInfo01 =” + mapInfo01)

console.info(“cardInfo02 =” + cardInfo02)

}

@Entry

@Component

struct Index {

@State message: string = ‘Hello World’;

build() {

Column() {

Text(this.message)

.id(‘Index240715112917104_01HelloWorld’)

.fontSize(50)

.fontWeight(FontWeight.Bold)

.onClick(() => {

a()

})

}

.height(‘100%’)

.width(‘100%’)

}

}

更多关于HarmonyOS 鸿蒙Next JSON 解析数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


有的阿,比如
深色代码主题
复制
JSON.parse("")

在HarmonyOS鸿蒙Next中解析JSON数据,你可以使用鸿蒙系统提供的JSON解析库。鸿蒙的JSON解析库提供了一套简洁的API,用于处理JSON数据的编码和解码。以下是一个基本的示例,展示如何在鸿蒙应用中解析JSON数据:

首先,确保你的项目中已经包含了鸿蒙的JSON库。然后,你可以使用以下代码来解析JSON数据:

#include <json/json.h>
#include <iostream>
#include <string>

int main() {
    const char* jsonData = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
    Json::CharReaderBuilder readerBuilder;
    Json::Value root;
    std::string errs;

    std::istringstream s(jsonData);
    bool parsingSuccessful = Json::parseFromStream(readerBuilder, s, &root, &errs);

    if (parsingSuccessful) {
        std::string name = root["name"].asString();
        int age = root["age"].asInt();
        std::string city = root["city"].asString();
        std::cout << "Name: " << name << ", Age: " << age << ", City: " << city << std::endl;
    } else {
        std::cerr << "Failed to parse JSON: " << errs << std::endl;
    }

    return 0;
}

注意,上述代码使用了C++风格的JSON库,这是在鸿蒙系统中处理JSON数据的一种常见方式。如果你的应用是基于JavaScript或其他语言,解析JSON的方式将有所不同。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部