Bunun üzerine çöktü. PlayJSON ve JsObject ile çalışmak.Serializable içeren ertelenmiş tür nasıl çözümlenir
Siğil giderici, map
aramasını bir havuçla (^) işaretliyor ve bu satırda Serializable içeren türetilmiş bir tür olduğunu söylüyor. Kod işlevsel ve çalışıyor ancak aracın bunu neden işaretlediğini ve bu hatayı nasıl kaldıracağımızı daha fazla merak ediyoruz.
def getPrintVersionOfJsonObj(jsObj: JsObject): JsObject = {
val fieldValueMap: Seq[(String,JsValue)] = jsObj.fields.map {
case (fieldName, fieldValue: JsNumber) => (fieldName, fieldValue)
case (fieldName, fieldValue: JsBoolean) => (fieldName, fieldValue)
case (fieldName, fieldValue: JsString) => (fieldName, fieldValue)
case (fieldName, fieldValue: JsArray) => (fieldName, convertJsArrayToPrettyString(fieldValue))
case (fieldName, fieldValue: JsObject) => (fieldName, getPrintVersionOfJsonObj(fieldValue))
case (fieldName, fieldValue: JsValue) => (fieldName, JsString(Json.prettyPrint(fieldValue)))
}
JsObject(fieldValueMap)
}
JSObject.fields Ne kafa karıştırıcı buluyorum o val fieldValueMap
için dönüş türü tanıyoruz olduğunu scala.collection.Seq[scala.Tuple2[scala.Predef.String, play.api.libs.json.JsValue]]
olduğunu ve hatta derler (ı don emin misiniz
dördüncü olanı döndürür '' '(String, JsString)' 've JsString' '', JsString (value: String), JsValue''' – Barry
öğesini genişletir. Bu durumda, wartremover yanlıştır (sonraki satırın sağlanması koşuluyla) ayrıca bir "JsValue" döndürür. Kod gerçekten derleniyor mu? – Dima
yea son zamanlarda tasarladığımız gibi çalışıyor ve projeye siğil sökücü ekledik ve sorunların çözümü için çalışıyorduk. – Barry