PyYaml到SnakeYaml— AWT-EventQueue-0“无法为标记构造java对象:yaml.org,2002:java / object:
我正在将使用PyYaml创建的Yaml传递给SnakeYaml,而Snakeyaml似乎没有认识到超出第一行的地方!存在并声明python / object。我已经在Java中设置了相同的对象。是否有一个示例将loadAll显示到对象数组中,其中对象类型被声明或分配?
好的电话......我最初发布时远离电脑。
以下是来自PyYaml的数据,我试图使用SnakeYaml进入Java应用程序:
--- !!python/object:dbmethods.Project.Project {dblogin: kirtstrim7900, dbname: 92218kirtstrim_wfrogls,dbpw: 1234567895#froggy, preference1: '', preference2: '', preference3: '', projName: CheckPoint Firewall Audit - imp, projNo: 1295789430544+CheckPoint Firewall Audit - imp, projectowner: kirtcathey@sysrisk.com,result1label: Evidence, result2label: Recommend, result3label: Report, resultlabel: Response,role: owner, workstep1label: Objective, workstep2label: Policy, workstep3label: Guidance,worksteplabel: Procedure}
不仅仅是上面的一个实例,而是几个对象,所以需要在SnakeYaml中使用loadAll ....除非有人知道更好。
至于代码,这是我从SnakeYaml文档获得的全部内容:
for (Object data : yaml.loadAll(sb.toString())) {
System.out.println(data.toString());
}
然后,抛出此错误:
Exception in thread "AWT-EventQueue-0" Can't construct a java object for tag:yaml.org,2002:java/object: ......
Caused by: org.yaml.snakeyaml.error.YAMLException: Class not found: ......
正如您从小代码片段中看到的那样,即使没有提供所有这些信息,任何知道如何任意抛出对象的答案的人都可以回答这个问题。
谢谢。
在每个条目的开头解析了两个感叹号(!!),现在我得到:
这里不允许映射值
在“”,第1行,第73栏:
作为一个错误。使用YAML的重点是减少与解析相关的编码。如果我因任何原因需要转身并解析传入和传出的代码,那么YAML很糟糕!并且很乐意恢复XML或其他任何允许python中间件与java应用程序通信的东西。
没有找到相关结果
已邀请:
2 个回复
郸身
坝胺绣敝
然后在Java客户端(加载)方面,使用GSon - 这需要大量的头脑和搜索才能弄明白,因为'网上的所有示例实际上都是无用的。每个博客每页有500个广告,向您展示如何转换一个单一的,愚蠢的对象,上次我创建一个应用程序,我使用列表,数组或任何持有多个对象的东西!
完成!简而言之 - YAML糟透了并使用JSON !!此外,http连接代码大部分都是从这个网站上删除的...现在我需要弄清楚https。