我將用PyYaml創建的Yaml傳遞給SnakeYaml,並且Snakeyaml似乎沒有在第一行之外的任何地方都可以識別出!! exists和python/object聲明的第一行。我已經在Java中設置了相同的對象。是否有一個示例顯示loadAll到對象數組中,其中對象類型被聲明或分配?PyYaml to SnakeYaml --- AWT-EventQueue-0「無法爲標記構造Java對象:yaml.org,2002:java/object:
良好的通話...是遠離電腦,當我最初發布。
這裏是PyYaml,我試圖用SnakeYaml到g的數據等在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: [email protected],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: ......
你可以從一小段代碼看,連如果沒有提供所有這些信息,任何知道關於如何任意投擲對象的答案的人都可能可以回答這個問題。
Thx。
解析的關閉兩個感嘆號(!),在每個條目的開始,現在我得到: 映射值在此允許「」 ,1號線,73列:
爲錯誤。使用YAML的重點是減少與解析相關的編碼。如果我不得不回頭解析傳入和傳出的代碼,然後YAML吸!並會很樂意恢復XML或其他任何可以讓python中間件與Java應用程序交談的東西。
你應該發佈不能正常工作的數據以及你用來加載它的代碼。 – Autoplectic 2011-02-12 08:46:06