由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 有没有人用过org.json.JSONObject?
相关主题
访问有安全认证的Web Service,再转换成Json,怎么实现比较好?C++ 中 myobject * a =new myobject[n] 的问题
用了一个礼拜写了一个c++ Json类,方便了数据类的存贮Javascript确实是最优秀的语言之一
要将数据同时生成JSON和XML, 应该先生成哪个,再转换成另一个oop还是跟fp是对立的
请教有关java spring MVC的问题discussion: why do we need entry_points in python (setup_t (转载)
我想在服务器端实现Restful服务,用什么方法实现比较好?现在hibernate这种流行框架
Java后台和前台iOS native API通讯,怎么实现MVC设计模式呢?问一个简单的:setter 和getter有什么用处?
Hadoop写入的主流框架有哪些?FMP 进驻 Programming 版
请推荐web service frameworkFMP3分布式编程
相关话题的讨论汇总
话题: json话题: jsonobject话题: string话题: output话题: input
进入Programming版参与讨论
1 (共1页)
s****y
发帖数: 503
1
我用websphere v9beta(支持JAX-RS 2.0)实现restful,下面这段代码
@GET
@Path("/getJson1")
@Produces(MediaType.APPLICATION_JSON)
public JSONObject getJSON1() {
String input = "This is input";
String output = "This is output";
JSONObject outputJsonObj = new JSONObject();
outputJsonObj.put("input", input);
outputJsonObj.put("output", output);
return outputJsonObj;
}
如果用import com.ibm.json.java.JSONObject实现JsonObject是运行正常的,但是如
果用import org.json.JSONObject来实现就会报如下的错
[ERROR ] Problem with writing the data, class org.json.JSONObject,
ContentType: application/json
[WARNING ] Interceptor for HelloResource1 has thrown exception, unwinding
now
No serializer found for class org.json.JSONObject and no properties
discovered to create BeanSerializer (to avoid exception, disable
SerializationFeature.FAIL_ON_EMPTY_BEANS) )
按理说org.json跟通用啊?为什么websphere上运行会有这样的问题?
d****i
发帖数: 4809
2
你没有理解这些annotation的真正用法,应该是返回一个Java object或者Response。
org.json.JSONObject已经是json了,不用像你这样包装成json。应该写成
@GET
@Path("/getJson1")
@Produces(MediaType.APPLICATION_JSON)
public MyObject getJSON1() {
MyObject obj = new MyObject();
obj.setInput("This is input");
obj.setOutput("This is output");
return obj
}
然后定义MyObject class:
public class MyObject {
private String input;
private String output;
// setters and getters
......
}

【在 s****y 的大作中提到】
: 我用websphere v9beta(支持JAX-RS 2.0)实现restful,下面这段代码
: @GET
: @Path("/getJson1")
: @Produces(MediaType.APPLICATION_JSON)
: public JSONObject getJSON1() {
: String input = "This is input";
: String output = "This is output";
: JSONObject outputJsonObj = new JSONObject();
: outputJsonObj.put("input", input);
: outputJsonObj.put("output", output);

s****y
发帖数: 503
3

但是用IBM的包就没问题,而且如果要自己封装MyObject,我还不如直接用String了呢?

【在 d****i 的大作中提到】
: 你没有理解这些annotation的真正用法,应该是返回一个Java object或者Response。
: org.json.JSONObject已经是json了,不用像你这样包装成json。应该写成
: @GET
: @Path("/getJson1")
: @Produces(MediaType.APPLICATION_JSON)
: public MyObject getJSON1() {
: MyObject obj = new MyObject();
: obj.setInput("This is input");
: obj.setOutput("This is output");
: return obj

d****i
发帖数: 4809
4
JAX-RS里面不应该直接用JSON string来做序列化,而应该用POJO class, 这样JAX-RS
自动会把你的POJO class变成JSON, 你只需要告诉你的application用某个JSON
provider就可以了,比如你如果用Jackson,就只要在这个类中注册一下就可以了
public class MyApplication extends ResourceConfig {
public MyApplication() {
packages("foo.package").register(JacksonFeature.class);
}
}

呢?

【在 s****y 的大作中提到】
:
: 但是用IBM的包就没问题,而且如果要自己封装MyObject,我还不如直接用String了呢?

g*****g
发帖数: 34805
5
Use @Provider annotation and register a Bean mapper there. that's the
standard practice.

RS

【在 d****i 的大作中提到】
: JAX-RS里面不应该直接用JSON string来做序列化,而应该用POJO class, 这样JAX-RS
: 自动会把你的POJO class变成JSON, 你只需要告诉你的application用某个JSON
: provider就可以了,比如你如果用Jackson,就只要在这个类中注册一下就可以了
: public class MyApplication extends ResourceConfig {
: public MyApplication() {
: packages("foo.package").register(JacksonFeature.class);
: }
: }
:
: 呢?

1 (共1页)
进入Programming版参与讨论
相关主题
FMP3分布式编程我想在服务器端实现Restful服务,用什么方法实现比较好?
也谈OOP跟FP之争Java后台和前台iOS native API通讯,怎么实现MVC设计模式呢?
我现在明白为什么ejb会难了Hadoop写入的主流框架有哪些?
给大家出个多进程的题请推荐web service framework
访问有安全认证的Web Service,再转换成Json,怎么实现比较好?C++ 中 myobject * a =new myobject[n] 的问题
用了一个礼拜写了一个c++ Json类,方便了数据类的存贮Javascript确实是最优秀的语言之一
要将数据同时生成JSON和XML, 应该先生成哪个,再转换成另一个oop还是跟fp是对立的
请教有关java spring MVC的问题discussion: why do we need entry_points in python (setup_t (转载)
相关话题的讨论汇总
话题: json话题: jsonobject话题: string话题: output话题: input