Здравствуйте, , я подумал о вашем коде и кое-что изменил, вот мой код:
public static void main(String[] args) {
try {
BufferedReader bufferedReader = java.nio.file.Files.newBufferedReader(Paths.get("test.json"));
JSONObject data = (JSONObject) new JSONParser().parse(bufferedReader);
System.out.println(data.get("Type"));
} catch (Exception e) {
e.printStackTrace();
}
}
Это содержание теста. json Файл: {"Type":"level-info","LevelNumber":1}
Мой вывод: level-info
Пожалуйста, проверьте, действительно ли импортированы org.json.simple.JSONObject
, org.json.simple.parser.JSONParser
и org.json.simple.parser.ParseException
. Не то чтобы вы случайно импортировали что-то еще.
Удачи, надеюсь, я смогу вам помочь!
РЕДАКТИРОВАТЬ
Итак, у меня произошла ошибка со следующим примером:
public static void main(String[] args) {
try {
String string = "{name=Asel, number1=40.34, number2=29.343}";
JSONObject object = (JSONObject) new JSONParser().parse(string);
System.out.println(object.get("name"));
} catch (Exception e) {
e.printStackTrace();
}
}
Но не с этим:
public static void main(String[] args) {
try {
String string = "{\"name\":\"Asel\", \"number1\":\"40.34\", \"number2\":\"29.343\"}";
JSONObject object = (JSONObject) new JSONParser().parse(string);
System.out.println(object.get("name"));
} catch (Exception e) {
e.printStackTrace();
}
}
Поэтому мне интересно, действительно ли ваша строка, которую вы действительно получаете из своего TCP-сокета, точно {"Type":"level-info","LevelNumber":"1"}
, а не что-то неверно это: {"Type"="level-info","LevelNumber"="1"}
Чтобы проверить это, вы можете попробовать заменить =
на :
в строке TP C Socket и посмотреть, возникает ли ошибка по-прежнему.
JSONObject json = (JSONObject) новый JSONParser (). Parse (dataReceived.replace ( "=" , ":" ));