我有一个分配,我必须阅读包含选举信息的json文件并保存我得到的数据。问题是我无法使用任何外部库,比如简单的json等。这位专业人士说我做了类似的事情:
FileInputStream fin = new FileInputStream(new File(filename));
JSONTokener tokener = new JSONTokener(fin);
JSONObject elections = new JSONObject(tokener);
JSONArray candidates = elections.getJSONArray("candidates"); JSONArray
ballots = elections.getJSONArray("ballots");
然后我可以用
访问我的候选人candidates.getString(i)
我的选票
JSONArray ballot = ballots.getJSONArray(i)
但是当我运行代码时,我得到以下异常:
org.json.JSONException: A JSONObject text must begin with '{' at 6 [character 1 line 6]
at org.json.JSONTokener.syntaxError(JSONTokener.java:433)
at org.json.JSONObject.<init>(JSONObject.java:194)
at Schulze.main(Schulze.java:17)
例外情况来自这个例外:
JSONObject elections = new JSONObject(tokener);
json文件内容是这样的:
{&#34;候选人&#34;:[ &#34; a&#34;,&#34; b&#34;,&#34; c&#34;,&#34; d&#34; ],&#34;选票&#34;:[ [0,2,3,1], [0,2,3,1], [0,2,3,1], [0,2,3,1], [0,2,3,1], [0,2,3,1],
[1, 0, 3, 2], [1, 0, 3, 2], [1, 0, 3, 2], [1, 0, 3, 2], [2, 3, 1, 0], [2, 3, 1, 0], [2, 3, 1, 0], [3, 1, 0, 2], [3, 1, 0, 2], [3, 1, 0, 2], [3, 1, 0, 2], [3, 2, 1, 0], [3, 2, 1, 0], [3, 2, 1, 0], [3, 2, 1, 0] ] }
关于这可能是什么问题的任何想法?
答案 0 :(得分:1)
json文件仍然是普通的文本文件。您可以忽略org.json并使用处理文本文件的普通Java代码读取该文件。这不需要任何外部库。