')' ожидается в .jsp

У меня ошибка после того, как я поставил $.student[?(@.id= = "543020619-3")].register[*].sname.

Но когда я удалил его, ошибка исчезла.

Я обнаружил, что мне нужно изменить String с "" на '', и тогда ошибка улетит.

<%@ page language = "java" contentType = "text/html; charset=utf-8" pageEncoding = "utf-8" %>
<%@ page import = "java.util.List, java.nio.file.*, com.jayway.jsonpath.*" %>


<%
	// 1. อ่านไฟล์เก็บลง String
	String json = new String(Files.readAllBytes(Paths.get("C:\\Users\\Tuna\\Desktop\\JSONlab\\student.json")), "UTF8");
	
	// 2. แปลข้อมูลจาก String ให้อยู่ในรูปแบบ Object ของ JSON
	Object document = Configuration.defaultConfiguration().jsonProvider().parse(json);

	// 3. ดึงผลลัพธ์ ด้วย JSON Path
	// 3.1 กรณีที่ผลลัพธ์ไม่เป็น Array
	/*String firstName = JsonPath.read(document, "$.student[1].stdName");
	out.println(firstName + "<br><br>");*/
	
        out.println("<br>");
        out.println("ข้อ 1 : JSON Path คือ $...????" + "<br>");
        out.println("<b>" + "ผลลัพธ์" + "</b>");
        out.println("<br>");
        
	// 3.2 กรณีที่ผลลัพธ์เป็น Array
	List<String> name = JsonPath.read(document, "$..stdName");
	for(int i=0; i<name.size(); i++) {	
		out.println(name.get(i) + "<br>");
	}	
        
        
        out.println("<br>");
        out.println("ข้อ 2 : JSON Path คือ $...????" + "<br>");
        out.println("<b>" + "ผลลัพธ์" + "</b>");
        out.println("<br>");
        
        List<String> stdName = JsonPath.read(document, "$.student[?(@.gpa>3.0)].stdName");
	for(int i=0; i<stdName.size(); i++) {	
		out.println(stdName.get(i) + "<br>");
	}	

        
        out.println("<br>");
        out.println("ข้อ 3 : JSON Path คือ $...????" + "<br>");
        out.println("<b>" + "ผลลัพธ์" + "</b>");
        out.println("<br>");
        

        List<String> enroll = JsonPath.read(document, "$.student[?(@.id= = "543020619-3")].register[*].sname");
	for(int i=0; i<enroll.size(); i++) {	
		out.println(enroll.get(i) + "<br>");
	}	
        

%>

Добро пожаловать в StackOverflow. Пожалуйста, прочтите и следуйте инструкциям по публикации в справочной документации. Здесь применяется минимальный воспроизводимый пример. Мы не сможем эффективно помочь вам, пока вы не опубликуете свой код MCVE и точно не опишете проблему. Мы сможем вставить ваш опубликованный код в текстовый файл и воспроизвести описанную вами проблему.

clinomaniac 05.04.2018 20:46

java-код на jsp. Ничего хорошего. Так в чем твоя проблема?

want2learn 05.04.2018 20:51
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
2
59
1

Ответы 1

Эта строка - ваша проблема:

"$.student[?(@.id= = "543020619-3")].register[*].sname"

Вы не избегаете кавычек. Используйте следующее:

"$.student[?(@.id==\"543020619-3\")].register[*].sname"

Спасибо за ответ. Ошибка исчезла, но данные не отображаются. Я обнаружил, что мне нужно поменять "" на "'.

user7200285 05.04.2018 21:19

Другие вопросы по теме