我正在嘗試解析Groovy中的yaml文件。但是,當我將結果轉換爲Map對象時,我面臨着問題。在Groovy中進行類型轉換
這裏是我的邏輯
import org.yaml.snakeyaml.Yaml
import java.util.Map
Reader reader = null
int tokenCount = 0
def Map map = null
StringTokenizer st = new java.util.StringTokenizer("Country.State.City", ".")
reader = new FileReader("filepath")
String val = null
Yaml yaml = new Yaml()
map = (Map) yaml.load(reader)
tokenCount = st.countTokens()
for (i=1; i < tokenCount; i++) {
String token = st.nextToken()
map = (Map) map.get(token)
}
val = map.get(st.nextToken()).toString()
但是我得到錯誤的行: map = (Map) map.get(token)
,它說:
"org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'some value' with class 'java.lang.String' to class 'java.util.Map' error at line: 15"..
在哪裏,我錯了?
我建議你發佈文件你正試圖解析腳本準備嘗試。 – Opal 2014-09-19 09:39:20
這是groovy腳本https://www.dropbox.com/s/3fvwte5137znmb0/GScript.gsh?dl=0。非常感謝 – Rahul 2014-09-19 09:50:45
yaml文件本身也不錯。從它可能意味着的錯誤,你只是在你的yaml訪問一些「死衚衕」。 – cfrick 2014-09-19 10:11:21