HarmonyOS resources/profile下面自定义的json如何读取并使用?

我在resources/profile下面自定义了一个json文件config.json,并配置到了module.json5下面:

"metadata": [  
      {  
        "name": "com.bb.aa",  
        "resource": "$profile:config"  
      }  
    ]

然后在代码中通过下面的方式获取到metadata。

然后 let resouce= metadata.resource;  (此时打印resource的值为"$profile:config")

此时,我怎么解析并获取resource中的值呢?

或者,有没有更好的方式实现我的这种需求?(就是想在代码中读取一个配置文件)

let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_METADATA |  
bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION;  
try {  
  bundleManager.getBundleInfoForSelf(bundleFlags).then((bundleInfo: bundleManager.BundleInfo) => {  
    hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully. Data: %{public}s', JSON.stringify(bundleInfo));  
    hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully. MetaData: %{public}s', JSON.stringify(bundleInfo.appInfo.metadataArray));  
    let arr = bundleInfo.appInfo.metadataArray;  
    console.info("testTag arr is ", (arr instanceof Array));  
    hilog.info(0x0000, 'testTag', 'arr : %{public}s', JSON.stringify(arr.length));  
    for(let data of arr){  
      hilog.info(0x0000, 'testTag', 'MetaData name: %{public}s', JSON.stringify(data.moduleName));  
      for(let metadata of data.metadata){  
        let r = metadata.resource;  
  
        hilog.info(0x0000, 'testTag', 'MetaData resource: %{public}s', JSON.stringify(r));  
      }  
    }  
  }).catch((err: BusinessError) => {  
    hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed. Cause: %{public}s', err.message);  
  });  
} catch (err) {  
  let message = (err as BusinessError).message;  
  hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', message);  
}
HarmonyOS
2024-10-21 12:50:54
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

放到resources/base/element/string.json下面的话,可以使用resourceManager.getStringByNameSync("name")读取其他模块的json数据。

使用resourceManager.getRawFileContentSync,如果json文件不同名,也可以读取其他模块的json文件。

或者在rawfile文件夹下再新建一个文件夹,例如在公共模块rawfile下在新建一个common文件夹,在common文件夹里创建config.json。这样在其他模块下面也可以通过。resourceManager.getRawFileContentSync("common/configs.json")获取到数据。

分享
微博
QQ
微信
回复
2024-10-21 17:30:12
相关问题
使用自定义任务读取build-profile.josn5
1074浏览 • 1回复 待解决
自定义资源文件怎么读取
2404浏览 • 1回复 待解决
鸿蒙如何读取resources目录下文件
3497浏览 • 1回复 待解决
json 如何转换成自定义业务类对象
803浏览 • 1回复 待解决
HarmonyOS 使用自定义字体
246浏览 • 1回复 待解决
HarmonyOS 自定义接口如何使用
158浏览 • 1回复 待解决
自定义弹窗如何嵌套使用
1690浏览 • 1回复 待解决
HarmonyOS 使用全局自定义弹窗
43浏览 • 1回复 待解决
ArkUI中如何使用自定义字体
833浏览 • 2回复 待解决
自定义组件onMeasureSize使用
414浏览 • 1回复 待解决
自定义装饰器使用问题
801浏览 • 1回复 待解决
json字符串与自定义class结构转换
2128浏览 • 1回复 待解决
HarmonyOS 希望优化自定义弹窗使用
250浏览 • 1回复 待解决