HarmonyOS 鸿蒙Next JSON.stringify 保持字段顺序

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

HarmonyOS 鸿蒙Next JSON.stringify 保持字段顺序

cke_554.png

希望JSON.stringify之后保持顺序输出

{“longitude”:“xxxx”.“latitude”:“xxxx”}


更多关于HarmonyOS 鸿蒙Next JSON.stringify 保持字段顺序的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

楼主您好!我这边试了下,JSON.stringify之后就是按照class的字段顺序输出的,demo和打印信息如下,您可以参考下:

class ClockInReq {
  longitude: string =  ''
  latitude: string =  ''
  luaaa: string = ''
}
Text('测试输出').onClick(() => {
   console.log('输出' + JSON.stringify(new ClockInReq()))
})

输出{"longitude":"","latitude":"","luaaa":""}

更多关于HarmonyOS 鸿蒙Next JSON.stringify 保持字段顺序的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next环境中,JSON.stringify 保持字段顺序的问题可以通过以下方式处理:

HarmonyOS鸿蒙Next系统基于JavaScriptCore引擎,原生JSON.stringify方法不保证对象的属性顺序。然而,可以通过一些技巧来确保JSON字符串化时字段顺序的一致性。

  1. 数组中转对象:将对象属性转换为数组,再遍历数组按顺序构建JSON字符串。这种方法可以确保字段顺序与数组中的顺序一致。

    function stringifyWithOrder(obj, keys) {
        return JSON.stringify(keys.reduce((acc, key) => {
            acc[key] = obj[key];
            return acc;
        }, {}));
    }
    
    const obj = {b: 2, a: 1, c: 3};
    const keys = ['a', 'b', 'c'];
    const result = stringifyWithOrder(obj, keys);
    console.log(result); // 输出:{"a":1,"b":2,"c":3}
    
  2. 使用第三方库:使用如flatted(一个flatted版本的JSON.stringify,保留对象顺序)等第三方库来处理。

    import { stringify } from 'flatted';
    const obj = {b: 2, a: 1, c: 3};
    const result = stringify(obj);
    console.log(result); // 保留对象顺序的字符串
    

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

回到顶部