Java类型转换

mapToStr + mapToKeyValueStrList

代码

// convert (Java) map (java.util.HashMap) key=value string list
function mapToKeyValueStrList(curMap){
  var keyValStrList = []
  var HashMapNode = Java.use('java.util.HashMap$Node')
  // console.log("HashMapNode=" + HashMapNode)
  var iterator = curMap.entrySet().iterator();
  // console.log("iterator=" + iterator)
  while (iterator.hasNext()) {
    var entry = Java.cast(iterator.next(), HashMapNode)
    // console.log("entry=" + entry)
    var curKey = entry.getKey()
    var curVal = entry.getValue()
    // console.log("key=" + entry.getKey() + ", value=" + entry.getValue());
    var keyValStr = `${curKey}=${curVal}`
    // console.log("keyValStr=" + keyValStr);
    keyValStrList.push(keyValStr)
  }
  // console.log("keyValStrList=" + keyValStrList)
  return keyValStrList
}


// convert (Java) map (java.util.HashMap) to string
//  curMap="<instance: java.util.Map, $className: java.util.HashMap>"
function mapToStr(curMap){
  // return JSON.stringify(curMap, (key, value) => (value instanceof Map ? [...value] : value));
  var keyValStrList = mapToKeyValueStrList(curMap)
  // console.log("keyValStrList=" + keyValStrList)
  var mapStr = keyValStrList.join(", ")
  var mapStr = `[${mapStr}]`
  // console.log("mapStr=" + mapStr)
  return mapStr
}

举例

调用:

mapToStr(someMap)

输出:

map=[jekins_url=null, version_code=290700, channel=xiaomi_1128_64, complete_cid=null, device_category=phone, jekins_number=267823423, update_version_code=29709900, release_build=44d835b_20240422_202759_7360528886469494794, version_name=29.7.0, jekins_name=douyin_android_release_build_mac, branch_name=null, manifest_version=29.7.0, aid=1128, first_update_launch=2]

maptostr_example

results matching ""

    No results matching ""