在将下面的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数组的形式出现。
已尝试将jsonobject转换为json数组,或将XML转换为json数组,或将字符串转换为json数组...
但是可以按照上面的json用方括号获得所需的json。
Ps在这方面请求您的帮助。
提前感谢
发布于 2014-09-16 22:55:36
第一步:根据您正在使用的编程语言定义数据结构。第二步:将XML转换为数据结构。第三步:将数据结构转换为JSON。
显然,数据结构需要一个数组。XML实际上没有数组,只是相同类型的元素0、1或更多次,所以您不能看到XML包含一个数组,但您知道您需要一个数组。解析XML的代码需要0、1或更多的XML元素,并将它们放入一个数组中。
发布于 2014-09-16 23:25:51
它确实不符合您的期望,因为如果您有多个子节点,则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是正确的。
https://stackoverflow.com/questions/25871696
复制相似问题