2014-09-16 1 views
0

아래 XML을 json으로 변환하면 다음과 같은 결과가 나옵니다.아래의 요구 사항 (json 배열에서 json 배열로)을 충족 시키거나 xml에서 json 배열로 직접 변환하는 방법은 무엇입니까?

XML :

<biometrics> 
    <type>FMR</type> 
    <positionHint>left</positionHint> 
    <biometricSample>wrwerwerwerw</biometricSample> 
</biometrics> 

JSON :

{ 
    "biometrics": 
    { 
     "type" : "FMR", 
     "positionHint":"left", 
     "biometricSample":"wrwerwerwerw" 
    } 
} 

위의 변환 JSON이 유효하지만. 시스템은 json이 아래 형식 (json 배열)을 가질 것으로 예상합니다.

{ 
    "biometrics": 
    [ 
    { 
     "type" : "FMR", 
     "positionHint":"left", 
     "biometricSample":"wrwerwerwerw" 
    } 
    ] 
} 

위의 json에서 명확한 대괄호가 예상됩니다. 하나의 개체가 있지만 시스템은 json 배열의 형태로 그것을 기대합니다.

은 ... JSON 배열을 JSON 배열 또는 문자열로 JSON 배열 또는 XML로 된 JSONObject에서

변환 시도하지만, 위의 JSON에 따라 대괄호에 필요한 JSON을 얻을 수 있습니다.

Ps에 대한 도움을 요청하는 중입니다. 사전

+0

그냥'json.biometrics = [json.biometrics];'라고 말하면됩니다. –

답변

0

1 단계에서

감사합니다 : 당신이 사용하는 프로그래밍 언어의 관점에서 데이터 구조를 정의합니다. 2 단계 : XML을 해당 데이터 구조로 변환하십시오. 3 단계 : 해당 데이터 구조를 JSON으로 변환하십시오.

분명히 데이터 구조는 배열을 원합니다. XML은 실제로 배열을 가지고 있지 않으며, 0 번, 1 번 이상 같은 종류의 요소이므로 XML을 볼 수없고 배열을 볼 수는 없지만 배열이 필요하다는 것을 알고 있습니다. XML을 파싱하는 코드는 0 개, 1 개 이상의 XML 요소를 필요로하며 모든 요소를 ​​하나의 배열에 넣습니다.

0

노드 아래에 여러 개의 노드가있는 경우 여러 개의 하위 노드가있는 경우 json에 배열이 포함되므로 예상 한 바를 실제로 이해하지 못합니다. 당신은 몇 가지 주요 방법 그리고 생성이

같은 클래스

public class TestBio { 
    List<Biometrics> biometrics = new ArrayList<Biometrics>(); 
    public TestBio(Biometrics biometric){ 
     biometrics.add(biometric); 
    } 
} 

하나 개 더 클래스

public class Biometrics { 
    private String type; 
    private String positionHint; 
    private String biometricSample; 
    public Biometrics(){} 
    //getters setters toString etc 
} 

을 시도 할 수 있지만

String str ="{\n" + 
     "\"biometrics\":{\n" + 
     "\"type\" : \"FMR\",\n" + 
     "\"positionHint\":\"left\",\n" + 
     "\"biometricSample\":\"wrwerwerwerw\"\n" + 
     "}\n" + 
     "}"; 
JsonObject o = new JsonParser().parse(str).getAsJsonObject(); 
String bio = o.get("biometrics").toString(); 
Gson gson = new Gson(); 
Biometrics biometrics = gson.fromJson (bio, Biometrics.class); 
TestBio t =new TestBio(biometrics); 
String gsonArray = gson.toJson(t); 
System.out.println(gsonArray); 

다시이입니다하지 말 xml 노드가 그 패턴에 있다면 생성 된 json이 올바른 것입니다.

관련 문제