调用 dotNet 的YamlDotNet对yaml进行读写,无法正常调用

hhs66317 10天前 172 v 37.3.32 2024-10-12

一开始用的 aardio 的web.script.yaml,结果总是报错,com 调用出错,就尝试调用dotNet的YamlDotNet,结果还是遇到问题。

import console;
import dotNet;
import fsys.file;

dotNet.reference({
  ["YamlDotNet"] = $"\res\YamlDotNet.dll";
});

dotNet.import("YamlDotNet");


// 读取 YAML 文件函数
readYaml = function(filePath) {
    var fileContent = string.load(filePath)
    var deserializer = YamlDotNet.Serialization.DeserializerBuilder().Build()
    return deserializer.Deserialize(fileContent)
}

// 使用示例
console.log("读取 YAML 文件示例:")
var data = readYaml("\res\app.yaml")

for(item in data) {
  console.dumpJson(item);
}


import console;
import dotNet;
import fsys.file;

dotNet.reference({
  ["YamlDotNet"] = $"\res\YamlDotNet.dll";
});

dotNet.import("YamlDotNet");


// 读取 YAML 文件函数
readYaml = function(filePath) {
    var fileContent = string.load(filePath)
    var deserializer = YamlDotNet.Serialization.DeserializerBuilder().Build()
    return deserializer.Deserialize(fileContent)
}

// 使用示例
console.log("读取 YAML 文件示例:")
var data = readYaml("\res\app.yaml")

for(item in data) {
  console.dumpJson(item);
}
import console;
import dotNet;
import fsys.file;

dotNet.reference({
  ["YamlDotNet"] = $"\res\YamlDotNet.dll";
});

dotNet.import("YamlDotNet");


// 读取 YAML 文件函数
readYaml = function(filePath) {
    var fileContent = string.load(filePath)
    var deserializer = YamlDotNet.Serialization.DeserializerBuilder().Build()
    return deserializer.Deserialize(fileContent)
}

// 使用示例
console.log("读取 YAML 文件示例:")
var data = readYaml("\res\app.yaml")

for(item in data) {
  console.dumpJson(item);
}
import console;
import dotNet;
import fsys.file;

dotNet.reference({
  ["YamlDotNet"] = $"\res\YamlDotNet.dll";
});

dotNet.import("YamlDotNet");


// 读取 YAML 文件函数
readYaml = function(filePath) {
    var fileContent = string.load(filePath)
    var deserializer = YamlDotNet.Serialization.DeserializerBuilder().Build()
    return deserializer.Deserialize(fileContent)
}

// 使用示例
console.log("读取 YAML 文件示例:")
var data = readYaml("\res\app.yaml")

for(item in data) {
  console.dumpJson(item);
}
import console;
import dotNet;
import fsys.file;

dotNet.reference({
  ["YamlDotNet"] = $"\res\YamlDotNet.dll";
});

dotNet.import("YamlDotNet");


// 读取 YAML 文件函数
readYaml = function(filePath) {
    var fileContent = string.load(filePath)
    var deserializer = YamlDotNet.Serialization.DeserializerBuilder().Build()
    return deserializer.Deserialize(fileContent)
}

// 使用示例
console.log("读取 YAML 文件示例:")
var data = readYaml("\res\app.yaml")

for(item in data) {
  console.dumpJson(item);
}

上面的代码,返回的结果是:

读取 YAML 文件示例:
“_dotNetObject”
“_dotNetAppDomain”

问题出在哪里呢?

最新回复 (1)
  • popde 7天前
    0 2
     import console; 
    import dotNet;
    dotNet.reference({
      ["YamlDotNet"] = "YamlDotNet.dll";
    });
    dotNet.import("YamlDotNet");
    
    var fileContent = "
    scalar: a scalar
    sequence:
      - one
      - two
    ";
    var deserializer = YamlDotNet.Serialization.DeserializerBuilder().Build();
    var yamlObject = deserializer.Deserialize(fileContent);
    var serializer2 = YamlDotNet.Serialization.SerializerBuilder().JsonCompatible().Build();
    var json = serializer2.Serialize(yamlObject);
    console.log(json);
    
    console.pause(true);


返回