簡體   English   中英

將java字符串轉換為json對象

[英]conversion of java string to json object

我在下面的代碼中有一個名為'jo'的json對象。我將這個json對象轉換為java字符串以將此json對象作為response返回。然后我如何將此字符串轉換回所需格式的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轉換回JSONObject,你可以做到

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

此外,當人們消化時,您可以使用諸如GSONJSONLib等的Java庫

使用代碼:

String returnString = jo.toString();

並作為回復發送。

您可以使用各種庫來完成此任務 - 我建議使用GSON 你也可以在這里找到他們網站上的好教程。

我會使用自定義對象,而不是簡單的JSONObject - 您可以輕松地以這種方式反序列化和存儲對象。

使用JSONObject

JSONObject jsonObj = new JSONObject("String");

這應該可以解決問題

JSONObject jsonObject = JSONObject.fromObject(jo);
// String to Json Object
JSONObject jsonObject = new JSONObject(stringResponse);

// JsonObject to String
String string = jsonObject.toString();

無論您何時收到回復,都可以使用以下代碼:

 JSONObject json= new JSONObject ( responseString );

然后你可以像Json對象一樣處理它。

String id=json.put("id");

這只是一個建議,我也面臨着這個問題。

最后,我嘗試了GSON庫。 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;
}

}

//在java中

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM