2012-04-12 81 views
1

即時通訊不知道如何獲得json對象並使用其他球衣輸出它使用rest從ajax json發佈,im使用grizzly服務器,服務器已設置,應用程序需要獲取代碼json,請糾正我,謝謝!服務器獲取json的球衣,JAVA

import java.io.IOException; 
import java.io.InputStream; 

import net.sf.json.JSONObject; 
import net.sf.json.JSONSerializer; 

import org.apache.commons.io.IOUtils; 

import javax.ws.rs.*; 

@Path("/helloworld") 
public class GetData { 
    @GET 
    @Consumes("application/json") 
      public String getResource(JSONObject obj) throws IOException { 

     InputStream in = (InputStream) obj.values(); 
     String data = IOUtils.toString(in); 

     JSONObject out = (JSONObject) JSONSerializer.toJSON(data); 

     String result = out.getString("name"); 
     return result;  


    } 

} 

回答

1

你需要知道,你的JSON對象應該被反序列化爲什麼。如果它只是一個JSONObject,你想手動解析它:

@Consumes("application/json") 
public String getResource(JSONObject obj) { 
... 
} 

如果是某種自定義對象的:

@Consumes("application/json") 
public String getResource(CustomObj customObj) { 
... 
} 

但你大約需要編組/該對象的解組,以照顧JSON by Jackson。

+0

ty爲答案!我有一個我的jQuery代碼在這裏張貼一個json到服務器 – nihulus 2012-04-12 07:10:58

+0

函數sendData(){.0jax({0}'/ helloworld', type:'POST', contentType:'application/json', 數據:{JSON:JSON.stringify({ 名: 「鮑勃」, ... })}, 數據類型: 'JSON' }); alert(「json posted!」); }; 所以變量obj包含json數據? – nihulus 2012-04-12 07:14:24

+0

是的,該對象將包含請求的主體 - 在你的情況下它是'{name:「Bob」,...}' – 2012-04-12 07:19:36