java字符串到json对象的转换

java字符串到json对象的转换,java,json,Java,Json,我在下面的代码中有一个名为“jo”的json对象。我将此json对象转换为java字符串以返回此json对象作为响应。然后我将如何将此字符串转换回所需格式的json对象。请帮助我 <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@page import="java.sql.*"%> <%@page import="java.util.*,java.util.ArrayList"%> <%@

我在下面的代码中有一个名为“jo”的json对象。我将此json对象转换为java字符串以返回此json对象作为响应。然后我将如何将此字符串转换回所需格式的json对象。请帮助我

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*,java.util.ArrayList"%>
<%@page import="net.sf.json.JSONObject"%>
<%@page import="net.sf.json.JSONArray"%>
<%
    JSONArray cellarray = new JSONArray();
    JSONObject cellobj = null; //new JSONObject();
    JSONObject jo=new JSONObject();
    String country=request.getParameter("count");  
    try{
        Class.forName("com.mysql.jdbc.Driver").newInstance();  
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:
        3306/test","root","root");  
        Statement stmt = con.createStatement();  
        ResultSet rs = stmt.executeQuery("Select * from state 
        where countryid='"+country+"'");  
            while(rs.next()){
                cellobj = new JSONObject();
                cellobj.put("id", rs.getString(1));
                cellobj.put("name", rs.getString(3));
                cellarray.add(cellobj);
            }  
            jo.put("arrayName",cellarray);
            response.setContentType("application/json");
            response.setCharacterEncoding("UTF-8");
            response.getWriter().write(jo.toString());
        }
    catch(Exception e){
        System.out.println(e);
    }
%>

使用代码:

String returnString = jo.toString();

并作为响应发送。

您可以使用各种库来完成此任务-我建议使用。你也可以在他们的网站上找到好的教程


我会使用自定义对象,而不是简单的JSONObject—您可以通过这种方式轻松地反序列化和存储对象。

使用
JSONObject

JSONObject jsonObj = new JSONObject("String");

你的问题看起来有点混乱+你的代码的格式也很混乱。但据我所知,为了将字符串转换回JSONObject,您可以

String someString= getResponseFromServer();
JSONObject jsonObject = new JSONObject(someString);
// and then do with jsonObject variable whatever you desire

正如人们所建议的那样,您可以使用java库,如或等,这应该可以做到

JSONObject jsonObject = JSONObject.fromObject(jo);

无论您在何处收到响应,都可以使用以下代码:

 JSONObject json= new JSONObject ( responseString );
然后您可以处理与
Json
对象相同的内容


比如
stringid=json.put(“id”)

这只是一个建议,我也面临类似的问题

最后,我尝试了图书馆。GSON直接将JSONString转换为java类对象

例如:

String jsonString = {"phoneNumber": "8888888888"}
创建一个新类:

class Phone {

@SerializedName("phoneNumber")
private String phoneNumebr;


public void setPhoneNumber(String phoneNumebr) {
this.phoneNumebr = phoneNumebr;
}

public String getPhoneNumebr(){
return phoneNumber;
}

}
//在爪哇

Gson gson = new Gson();
Phone phone = gson.fromJson(jsonString, Phone.class);

System.out.println(" Phone number is "+phone.getPhoneNumebr());

看看.jo=(JSONObject)jo?只是一个离题的注释:10年前,Scriptlet已经是维护的噩梦;我真的会花时间学习如何一起使用servlet和JSP来获得干净的、可维护的代码,并且JSP中没有java代码。请查看此链接,它可能有助于我不想将此字符串转换回json对象。请给我该对象的代码。JSONObject JSONObject=new JSONObject(returnString);
Gson gson = new Gson();
Phone phone = gson.fromJson(jsonString, Phone.class);

System.out.println(" Phone number is "+phone.getPhoneNumebr());