JavaScript Action中返回list应如何return
yd
2021.11.02 23:33发布于技术 - 新手入门
6202

如题,最近遇到需求,要求选择集群并获取所有子节点的名称。实现该需求需要调用一个rest接口,其返回的json对象如下:

{
  "retCode": "000",
  "retMsg": "查询成功",
  "result": {
    "device_name": {
      "node": {
        "node1": {
          "uuid": "123",
          "name": "KF_FAS2750_1_B",
        },
        "node2": {
          "uuid": "456",
          "name": "KF_FAS2750_1_B",
        },
        "node3": {
          "uuid": "789",
          "name": "KF_FAS2750_1_B",
        },
        "node4": {
          "uuid": "346b8214-0bb0-11ec-bc7f-d039ea16d123",
          "name": "KF_FAS2750_1_B",
        }
      }
    }
  }
}

基于get参数device,该json对象中device_name,及node下的子元素数量、键值均会发生改变,难以使用mapping进行处理。

目前考虑使用JavaScript进行处理。将该json存储为string并返回一个list,但return总是报错。

1635903310(1).png

Entity及JavaScript代码如下,请问如何正确返回 List。或者各位大神是否有更好的解决方案,多谢。

1635907036(1).png

let jsonObj = JSON.parse(jsonStr, device)
let nodes = jsonObj.result.device.node
let list = new Array();
for (var index in nodes) {
  let item = {"attributes": {"node_name": {"value": "index"}}}

  list.push(item)
}
return list

 

 

首赞
收藏
0评论
···
2个回答
按时间排序
按点赞排序
    红猪
    官方
    2021-11-03 10:34 发布

    看报错信息是array不允许在javascript使用,由于担心包含其他mx对象

    首赞
    0评论
    举报
    小艺001
    官方
    2021-11-03 10:54 发布

    mendix中的所有实体对象都要通过API创建,不是普通的json对象,具体参见如下示例。

    export async function SearchGitHubUsers(query) { // BEGIN USER CODE if (!query) { return []; } const url = "https://api.github.com/search/users?q=" + query; const response = await fetch(url); const jsonData = await response.json(); logger.debug("count", jsonData.total_count); const gitHubUsers = jsonData.items.map(createGitHubUser); return Promise.all(gitHubUsers); function createGitHubUser(user) { return new Promise(function (resolve, reject) { mx.data.create({ entity: "HowTo.GitHubUser", callback: function(mxObject) { mxObject.set("login", user.login); mxObject.set("avatar_url", user.avatar_url); resolve(mxObject); }, error: function(e) { reject("Could create object:" + error.message); } }); }); } // END USER CODE }
    yd、作者在
    点赞
    1评论
    举报