首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何进行转换,以满足以下要求( json对象到json数组)或直接从xml到json数组?

如何进行转换,以满足以下要求( json对象到json数组)或直接从xml到json数组?
EN

Stack Overflow用户
提问于 2014-09-16 22:39:10
回答 2查看 48关注 0票数 0

在将下面的XML转换为json之后,我得到了以下结果。

XML:

代码语言:javascript
复制
<biometrics>
    <type>FMR</type>
    <positionHint>left</positionHint>
    <biometricSample>wrwerwerwerw</biometricSample>
</biometrics>

JSON:

代码语言:javascript
复制
{
  "biometrics":
    {
      "type" : "FMR",
      "positionHint":"left",
      "biometricSample":"wrwerwerwerw"
    }
}

尽管上面转换的json是有效的。系统期望json为以下格式( json数组)。

代码语言:javascript
复制
{
  "biometrics": 
  [ 
    {
       "type" : "FMR",
       "positionHint":"left",
       "biometricSample":"wrwerwerwerw"
    }
  ]
}

从上面的json中可以清楚地看出,系统需要使用方括号。虽然只有一个物体。系统期望它以json数组的形式出现。

已尝试将jsonobject转换为json数组,或将XML转换为json数组,或将字符串转换为json数组...

但是可以按照上面的json用方括号获得所需的json。

Ps在这方面请求您的帮助。

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2014-09-16 22:55:36

第一步:根据您正在使用的编程语言定义数据结构。第二步:将XML转换为数据结构。第三步:将数据结构转换为JSON。

显然,数据结构需要一个数组。XML实际上没有数组,只是相同类型的元素0、1或更多次,所以您不能看到XML包含一个数组,但您知道您需要一个数组。解析XML的代码需要0、1或更多的XML元素,并将它们放入一个数组中。

票数 0
EN

Stack Overflow用户

发布于 2014-09-16 23:25:51

它确实不符合您的期望,因为如果您有多个子节点,则json将包含一个数组,这意味着节点下有许多节点。即使你可以尝试这样做

创建一个类

代码语言:javascript
复制
public class TestBio {
    List<Biometrics> biometrics = new ArrayList<Biometrics>();
    public TestBio(Biometrics biometric){
        biometrics.add(biometric);
    }
}

再上一节课

代码语言:javascript
复制
public class Biometrics {
    private String type;
    private String positionHint;
    private String biometricSample;
    public Biometrics(){}
    //getters setters toString etc
 }

然后在一些主要的方法中

代码语言:javascript
复制
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是正确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25871696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档