代码之家  ›  专栏  ›  技术社区  ›  Pebermynte Lars

传递表以调用read()javascript函数的语法

  •  1
  • Pebermynte Lars  · 技术社区  · 6 年前

    传递表的语法是什么

    * table user
    | UserId | UserType    | UserRoles        |
    | 123    | 'Regional'  | { Role : Ninja } |
    

    作为外部javascript函数的参数,返回值存储在变量中?

    我在想 * def uid = call read('base64-encoder.js') { user } 函数定义为

    function(uid) {
      var Base64 = Java.type('java.util.Base64');
      var encoded = Base64.getEncoder().encodeToString(uid.bytes);
    }
    

    但这给出了一个parserException:意外的文件结尾位置7:null

    2 回复  |  直到 6 年前
        1
  •  2
  •   Pebermynte Lars    6 年前

    在这种情况下,将空手道表传递给外部javascript函数的语法是

    * def uid = call read('base64-encoder.js') user
    

    只是为函数参数添加一个空格。

    javascript只是不知道如何处理它得到的列表项。 因此,要使此函数在类型检查时不失败,首先必须将表行强制转换为如下字符串:

    * string me = user[0]
    * def uid = call read('base64-encoder.js') me
    

    这样Java就不会在表上窒息,您将从编码字符串中获得格式良好的JSON字符串:

    function(uid) {
      var Base64 = Java.type('java.util.Base64');
      var encoded = Base64.getEncoder().encodeToString(uid.bytes);
      return encoded;
    }
    
        2
  •  1
  •   Simon.Lay    6 年前

    是否要将javascript对象保存在db表中?

    可以将javascript值转换为 JSON 是的。 JSON格式 是一个 String 你可以轻松地保存它。例子:

      // convert to JSON
      var jsonDatas = JSON.stringify(yourDatas);
      // convert to JavaScript value
      var javascriptDatas = JSON.parse(jsonDatas);
    

    它可以工作,但我不建议在db中保存json。

    我希望它能帮助你。