Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java程序的JSON问题_Java_Html_Json_Jsp - Fatal编程技术网

java程序的JSON问题

java程序的JSON问题,java,html,json,jsp,Java,Html,Json,Jsp,我正在尝试实现一个web服务,它返回一个简单的数据库来从Java应用程序读取它 我的服务器正在运行Tomcat7 下面是创建我的JSON文件的代码: <%@ page pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@page import="org.json.simple.JSONObject"%> <!DOCTYPE html> <html> <head&g

我正在尝试实现一个web服务,它返回一个简单的数据库来从Java应用程序读取它

我的服务器正在运行Tomcat7

下面是创建我的JSON文件的代码:

<%@ page pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@page import="org.json.simple.JSONObject"%> 

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="icon" type="image/png" href="HilevenLogo.png" />

<title>Hileven</title>
</head>
<body>

<%
    Class.forName ("org.postgresql.Driver");

    Connection cnx = DriverManager.getConnection ("jdbc:postgresql://localhost", "user" , "password");

    Statement st = cnx.createStatement();
    ResultSet rs = st.executeQuery("SELECT id, description, libelle, ordre, warning FROM commandes ORDER BY ordre");

    JSONObject obj=new JSONObject();

    while(rs.next()){
        obj.put("id", new Integer(rs.getInt("id")));
        obj.put("description", rs.getString("description"));
        obj.put("libelle", rs.getString("libelle"));
        obj.put("ordre", new Integer(rs.getInt("ordre")));
        obj.put("warning", new Boolean(rs.getBoolean("warning")));

        out.print(obj);
        out.flush();
    }

    rs.close();
    cnx.close();

%>

</body>
</html>
我有一个错误:

线程“main”org.json.JSONException中出现异常:JSONObject文本必须在字符6处以“{”开头

在生产线上:

JSONObject json=新的JSONObject(jsonText)

因此,我在这一行前面添加了一个System.out.println(jsonText),它返回我页面的整个html代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="icon" type="image/png" href="HilevenLogo.png" />

<title>Hileven</title>
</head>
<body>

{"ordre":1,"libelle":"Rapport Quotidien","description":"Envoie un rapport journalier de l activité du serveur par mail","warning":false,"id":1}{"ordre":2,"libelle":"Rapport Hebdomadaire","description":"Envoie un rapport hebdomadaire de l activité du serveur par mail","warning":false,"id":2}{"ordre":3,"libelle":"Reboot","description":"Redémarre le serveur","warning":false,"id":3}{"ordre":100,"libelle":"Extinction","description":"Eteint le serveur","warning":true,"id":4}

</body>
</html>

希尔文
“LeBelle”:“亲密关系”,“描述”:“使节联系人,新闻工作者,电子邮件”,“警告”:假,“ID”:1 }{“OrdRe”:2,“LeBelle”:“和谐HbdoDaDa1”,“描述”:“使节联合关系HebDoDaDeDeActudieService,Pail”,“警告”:FALSE,“ID”:2 }{“OrdRe”:3,“LeBelle”:“重启”,“描述”:{“OrdRe”:1,“红色婚姻服务”,“警告”:假,“id”:3}{“秩序”:100,“诽谤”:“灭绝”,“描述”:“Eteint le serveur”,“警告”:真,“id”:4}
这正常吗?我认为我的JSON web服务配置不好。当我们尝试转到URL而不是打印所有JSON内容时,它不是必须开始下载JSON文件吗


如何使我的JSP只返回JSON部分,甚至如何使我的java程序只读取JSON部分而不是所有html代码?

问题在于JSON结构,因为它的结构无效。您需要用逗号分隔每条记录,,并将整个JSON包含在
[]
因为您有一个符号列表

[{"ordre":1,"libelle":"Rapport Quotidien","description":"Envoie un rapport journalier de l activité du serveur par mail","warning":false,"id":1},{"ordre":2,"libelle":"Rapport Hebdomadaire","description":"Envoie un rapport hebdomadaire de l activité du serveur par mail","warning":false,"id":2},{"ordre":3,"libelle":"Reboot","description":"Redémarre le serveur","warning":false,"id":3},{"ordre":100,"libelle":"Extinction","description":"Eteint le serveur","warning":true,"id":4}]
您需要JSON数组和对象(对于每一行)

也改变这一行

JSONObject json = new JSONObject(jsonText);


问题在于JSON结构,因为它的结构无效。您需要用逗号
分隔每条记录,并将整个JSON包含在
[]
中,因为您有一个符号列表

[{"ordre":1,"libelle":"Rapport Quotidien","description":"Envoie un rapport journalier de l activité du serveur par mail","warning":false,"id":1},{"ordre":2,"libelle":"Rapport Hebdomadaire","description":"Envoie un rapport hebdomadaire de l activité du serveur par mail","warning":false,"id":2},{"ordre":3,"libelle":"Reboot","description":"Redémarre le serveur","warning":false,"id":3},{"ordre":100,"libelle":"Extinction","description":"Eteint le serveur","warning":true,"id":4}]
您需要JSON数组和对象(对于每一行)

也改变这一行

JSONObject json = new JSONObject(jsonText);


您会发现使用Jackson库更容易做到这一点,它将负责数组和对象格式化;只需将整个数据结构(Java类对象的Java数组)组合在一起,并调用Jackson对其进行序列化

JSONObject json = new JSONObject(jsonText); 

不会读取数组,只读取单个对象。要读取
[{},{},…]
,您需要发现读取对象数组的API。

您会发现使用Jackson库更容易做到这一点。它将处理数组和对象格式化;只需将整个数据结构(Java类对象的Java数组)放在一起即可并要求Jackson将其序列化

JSONObject json = new JSONObject(jsonText); 

不会读取数组,只读取单个对象。要读取
[{},{},…]
,您需要发现读取对象数组的API。

在@Arvind的帮助下,我获得了正确的结构。但我的java程序仍然会出现相同的错误是,我修改了我的类以读取JSONArray,并且我能够使用arr.getJSONObject(index)”。感谢您的帮助!在@Arvind的帮助下,我得到了正确的结构。但我仍然从java程序中得到相同的错误是的,我修改了我的类以读取JSONArray,并且我能够使用“arr.getJSONObject(index)”读取所有JSONObject。感谢您的帮助!好的,我通过添加“在我的脚本开头。感谢您的关注!好的,我通过在脚本开头添加”“找到了解决方案。感谢您的关注!”!