请注意,我不是Java专家,但是如果可能的话,我将非常感谢任何帮助和指导。
我有一段Java代码,它读取文件的内容,并使用JSOUP将其解析为html。然后我需要将一个表转换为JSON。第一行成功转换,但以下行均未转换。
我确信我忽略了一些简单的东西,因此非常感谢您的指导/帮助。
package html_to_json_parser;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.json.JSONObject;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class HTML_to_JSON_parser {
public static void main(String[] args) throws IOException {
InputStream is = new FileInputStream("skills_table.html");
BufferedReader buf = new BufferedReader(new InputStreamReader(is));
String line = buf.readLine();
StringBuilder sb = new StringBuilder();
while(line != null){
sb.append(line).append("\n");
line = buf.readLine();
}
String htmlFile = sb.toString();
Document doc = Jsoup.parse(htmlFile);
JSONObject jsonObject = new JSONObject();
JSONObject jsonParentObject = new JSONObject();
Element table = doc.select("table").first();
Elements row = table.getElementsByTag("tr");
for (int j = 0, k = row.size(); j < k; j++) {
Elements cols = row.select("td");
String skill = cols.get(0).text();
String beginner = cols.get(1).text();
String intermediate = cols.get(2).text();
String advanced = cols.get(3).text();
jsonObject.put("Beginner", beginner);
jsonObject.put("Intermediate", intermediate);
jsonObject.put("Advanced", advanced);
jsonParentObject.put(skill,jsonObject);
}
System.out.println(jsonParentObject.toString());
}
}
需要转换为JSON的HTML表:
<table>
<thead>
<tr>
<th>Skill</th>
<th>Beginner</th>
<th>Intermediate</th>
<th>Advanced</th>
</tr>
</thead>
<tbody>
<tr>
<td>Reading</td>
<td>â</td>
<td>â</td>
<td>â</td>
</tr>
<tr>
<td>Speaking</td>
<td>â¯</td>
<td>â</td>
<td>â</td>
</tr>
<tr>
<td>Writing</td>
<td>â¯</td>
<td>â¯</td>
<td>â</td>
</tr>
<tr>
<td>Interacting</td>
<td>â</td>
<td>â</td>
<td>â â</td>
</tr>
</tbody>
</table>
需要JSON输出:
[
{
"skill": "reading",
"beginner": "â",
"intermediate": "â",
"advanced": "â"
},
{
"skill": "writing",
"beginner": "â¯",
"intermediate": "â",
"advanced": "â"
},
{
"skill": "speaking",
"beginner": "â¯",
"intermediate": "â¯",
"advanced": "â"
},
{
"skill": "interacting",
"beginner": "â",
"intermediate": "â",
"advanced": "â â"
}
]