Эта линия
ошибка : Неожиданный символ (N) в позиции 0.
в вашем 2nd way фрагменте кода/кавычке указано, что вы анализируете недопустимый JSON. JSONObject name1 = (JSONObject) parser.parse(key);
key
в этой строке, вероятно, содержит недопустимый JSON. Вот почему синтаксический анализатор выдает исключение.
Вы можете попытаться отладить код и посмотреть, как выглядят строки key
, и вам следует выяснить, какие из них (если не все) содержат недопустимый JSON.
Я создал минималистическую программу, которая анализирует действительный JSONArray
(или JSONObject
, если файл содержит только один объект JSON) из файла (о котором вы упомянули в ответе @Sepx3). Я попытался использовать имена из ваших фрагментов кода для соответствующего кода, чтобы он оставался немного понятным.
Содержимое моего файла примера C:/Users/Envy/Documents/company.json
:
[
{
"key": "value"
},
{
"key1": "value1"
},
[
{
"key2": "value2"
},
{
"key3": "value3"
}
]
]
И код, который его анализирует, сохраняет его в объекте, а затем проверяет, был ли проанализирован JSONArray
или один JSONObject
(в моем примере это JSONArray
).
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import java.io.FileReader;
public class DemoApplication {
public static void main(String[] args) {
JSONParser parser = new JSONParser();
Object obj = null;
try {
obj = parser.parse(new FileReader("C:/Users/Envy/Documents/company.json"));
} catch (Exception e) {
// Handle possible exceptions
e.printStackTrace();
}
// If the parsed string was a single json object
if (obj instanceof JSONObject) {
JSONObject jsonObject = (JSONObject) obj;
// Do something with jsonObject, in this example it prints the content of jsonObject
System.out.println(jsonObject);
}
// Or else if the parsed string was a json array
else if (obj instanceof JSONArray) {
JSONArray jsonArray = (JSONArray) obj;
// Do something with jsonArray, in this example it prints the content of jsonArray
System.out.println(jsonArray);
}
}
}
Я надеюсь, что это хоть немного поможет вам и направит вас на правильный путь.
person
Troley
schedule
17.11.2019
key
? Можете ли вы показать нам значение, которое содержитkey
? - person Troley   schedule 17.11.2019