java json 表_使用Java中的Jsoup将HTML表解析为JSON

我有一个格式如下的

HTML表格:

Book1Group1Code1Lesson1Day1Day2Day3
Book2Group2Code2Lesson2Day1Day2Day3

我想用Jsoup解析这个HTML,并输出一个格式如下的JSON字符串:

{

"Book1": {

"Group": "Group1",

"Code": "Code1",

"Lesson": "Lesson1",

"Day1": "Day1",

"Day2": "Day2",

"Day3": "Day3"

},

"Book2": {

"Group": "Group2",

"Code": "Code2",

"Lesson": "Lesson2",

"Day1": "Day1",

"Day2": "Day2",

"Day3": "Day3"

}

}

我试过这段代码:

public String TableToJson(String source) throws JSONException {

Document doc = Jsoup.parse(source);

JSONObject jsonObject = new JSONObject();

JSONArray list = new JSONArray();

for (Element table : doc.select("table")) {

for (Element row : table.select("tr")) {

Elements tds = row.select("td");

String Name = tds.get(0).text();

String Group = tds.get(1).text();

String Code = tds.get(2).text();

jsonObject.put("Name", Name);

jsonObject.put("Group", Group);

jsonObject.put("Code", Code);

list.put(jsonObject);

}

}

return list.toString();

}

但它返回了错误的结果:

[

{

"Name": "Book1",

"Group": "Group1",

"Code": "Code1"

},

{

"Name": "Book1",

"Group": "Group1",

"Code": "Code1"

}

]

我无法更改表代码,因为它位于另一台服务器上.

如何使用Java中的Jsoup从输入中获得所需的结果?

最佳答案 您的代码的问题是您正在尝试使用相同的jsonObject,并且您还使用了您不需要的JsonArray.您需要一个包含对象的对象,但不包含包含对象数组的对象

public String TableToJson(String source) throws JSONException {

Document doc = Jsoup.parse(source);

JSONObject jsonParentObject = new JSONObject();

//JSONArray list = new JSONArray();

for (Element table : doc.select("table")) {

for (Element row : table.select("tr")) {

JSONObject jsonObject = new JSONObject();

Elements tds = row.select("td");

String Name = tds.get(0).text();

String Group = tds.get(1).text();

String Code = tds.get(2).text();

String Lesson = tds.get(3).text();

String Day1 = tds.get(4).text();

String Day2 = tds.get(5).text();

String Day3= tds.get(6).text();

jsonObject.put("Group", Group);

jsonObject.put("Code", Code);

jsonObject.put("Lesson", Lesson);

jsonObject.put("Day1", Day1);

jsonObject.put("Day2", Day2);

jsonObject.put("Day3", Day3);

jsonParentObject.put(Name,jsonObject);

}

}

return jsonParentObject.toString();

}

如果您需要澄清,请告诉我!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值