저는 XStream을 사용하여 JSON을 다시 Java 객체로 매핑합니다.XStream을 입력 된 목록으로 다시 매핑하는 방법은 무엇입니까?
{
"widgets":[
{
"widget_name": "Kenny",
"widget_type": "Character"
},
"widget_name": "Apple",
"widget_type": "Fruit"
}
]
}
업데이트 : 나는 다음과 같을 수 JSON 문자열을 처리 할 수 있습니다 내가이 JSON을 생각 하는 것으로 해석 될 수있다 :
이 JSON은 이름이 지정되지 않은 나타냅니다
widgets
개체를 포함하는 개체입니다.widgets
개체에는 다른 이름이 지정되지 않은 개체 배열이 차례로 들어 있습니다. 이러한 이름이 지정되지 않은 각 객체에는widget_name
및widget_type
의 두 속성이 있습니다. 이widgetlist
에서
각 Widget
는 POJO에 해당
public class Widget {
private String name;
private String type;
// ...etc.
}
내가 다시 List<Widget>
에 매핑 위의 JSON 문자열을하고 싶습니다,하지만 난 별칭을하는 방법을 알아낼 수없는 것 제대로 클래스 :
XStream xs = new XStream();
xs.alias("widgetlist", List.class); // Not a List<Widget> !
은 어떻게 xs
매퍼는로 widgetlist
번역을 얻을 수 있습니다? 미리 감사드립니다.
감사 @atomman (+1) - Unofrtunately, 나는 깨달았다 오늘 아침의 상단에 내 JSON 문자열 내 질문이 올바르지 않아서 실제 (올바른) JSON을 반영하도록 편집했습니다. – IAmYourFaja
글쎄, 내가 볼 수있는 유일한 방법은 JSON이'JsonHierarchicalStreamDriver'와'DROP_ROOT' 모드가 활성화 된 것을 재현 할 수 있다는 것입니다. 그러나 대답에서 말했듯이,이'Driver '는 비 직렬화를 지원하지 않습니다.불행히도,'JettisonMappedXmlDriver'는 엄격한 구조가 필요하기 때문에이 모드를 지원하지 않습니다. '{ "ObjectName": { "fieldName": "fieldValue", "fieldName2": "fieldValue"}}'. 죄송합니다. 현재 JSON으로 솔루션을 찾을 수 없으므로 JSON 구조를 변경하거나 사용자 정의 StaxReader로 직접 구문 분석하는 것이 좋습니다. – atomman
충분히 공정하게! JSON을 변경해 보겠습니다. 마지막 하나의 후속 조치 : 원래 질문을 JSON 예제가 나타내는 것으로 해석 한 것으로 업데이트했습니다. 그 설명을 읽고 내가 틀렸다면 나에게 틀렸다고 말해 줄 수 있습니까? 지금까지 (그리고 다시 +1) 모든 도움에 다시 한번 감사드립니다! – IAmYourFaja