【问题标题】:Server GET json in jersey, JAVA球衣中的服务器GET json,JAVA
【发布时间】:2012-04-12 06:08:02
【问题描述】:

我不确定如何获取一个 json 对象并使用来自 ajax json 帖子的 rest GET 将其输出到球衣中,我使用的是 grizzly 服务器,服务器已设置,这是应该获取 json 的代码,请纠正我,谢谢!

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;       


    }

} 

【问题讨论】:

    标签: java json get jersey


    【解决方案1】:

    你需要知道,你的 JSON 对象应该被反序列化成什么。如果它只是一个 JSONObject 并且您想手动解析它:

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

    如果是某种自定义对象:

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

    但是,您应该注意 Jackson 将该对象编组/解组为 JSON。

    【讨论】:

    • 回答!我在这里有一个我的 jquery 代码,它将一个 json 发布到服务器
    • function sendData() { $.ajax({ url: '/helloworld', type: 'POST', contentType: 'application/json', data: { json: JSON.stringify({ name :"Bob", ... })}, dataType: 'json' }); alert("json 发布!"); };所以变量 obj 包含 json 数据?
    • 是的,该对象将包含请求的正文 - 在您的情况下,它是 { name:"Bob", ... }
    • 现在更新了问题中的代码,我尝试返回数据,但没有任何结果,得到以下消息:ALLVARLIG: A message body reader for Java class net.sf.json.JSONObject,和Java 类型类 net.sf.json.JSONObject,未找到 MIME 媒体类型 application/octet-stream。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 2014-03-22
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    相关资源
    最近更新 更多