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 wri... 阅读全帖 |
|
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
......
} |
|
h*********d 发帖数: 336 | 3 只要两行吗?您方便教教我怎么做吗?或者用什么库自动转换?
还有我现在用JsonBuilderFactory一点一点build我的JsonArray 和JsonObject, 烦死
了,有啥好办法能直接从java object 生成个大JsonObject, 里面大概5,6 层嵌套?
就是一个大JSonObject 里面几个小的JsonObject, 小的里面又有JSonArray,
JsonArray 里面又是JSonObject,下面还有个3,4 层的样子。
我知道问题很低级,但能省我不少事。多谢! |
|
n*********u 发帖数: 1030 | 4 第一题感觉可以先以一个坐标轴扫描一遍所有垂直于那个坐标轴的可能的直线,放到一
个list里存起来。
把所有点放到一个hash map里存起来。
扫描完一遍后,对于每条直线,找需要构成正方形的另外两个点存不存在就行了。
第二题可以参考java的jsonObject class,或者类似的。
也就是把json的几个类别弄出来,(int,long,float), string, jsonObject, jsonList
,每个都有自己的__str__().
像画tree一样让__str__()自己recursive print出来就行了。 |
|
D***0 发帖数: 138 | 5 有很多连续的http request,如果每次都重新open一个connection,performance下降
很明显,能不能打开一次,然后多次发送http request呢?放狗了一下,没发现什么方
法,keep-alive好像是默认的。有人说要从tcp socket开始自己写http协议。不知道有
没有做过这方面的大侠指点一下,一下是我测试的代码。这段代码如果每次都重新call
HttpsURLConnection con = HttpsURLConnection)myurl.openConnection(); 就没问
题,但是如果先这样,那个URL里只有第一个值(忘了说这个是REST)。谢谢。
String httpsURL = "https://xxxx.yyyy.com/users.json";
URL myurl = new URL(httpsURL);
HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
con.setRe... 阅读全帖 |
|
N******K 发帖数: 10202 | 6 参考Qt的类名和函数名称 写了 JsonObject JsonValue JsonArray 以及JsonFile
这样我的所有数据类 都可以转换为一个JsonObject 然后用JsonFile写成 .json文件
某类
{
成员1 一个数字
成员2 一个类
}
存储为
某类.json
{
"成员1" : 1,
"成员2" : "某类.成员2.json"
}
某类.成员2.json 存储 成员2
以此类推 复杂的类 都可以这么搞 |
|
s****y 发帖数: 503 | 7
但是用IBM的包就没问题,而且如果要自己封装MyObject,我还不如直接用String了呢? |
|
d****i 发帖数: 4809 | 8 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);
}
}
呢? |
|
g*****g 发帖数: 34805 | 9 Use @Provider annotation and register a Bean mapper there. that's the
standard practice.
RS |
|
z****e 发帖数: 54598 | 10
拜托,你是没写过吗?
不用annotation的话,你就需要自己造轮子
那就是interface什么满天飞了
现在开发,谁去搞什么interface
绝大多数时候就是一个annotation搞定
比如
@Service
public JSonObject myMethod()...
就开始写business logic了,定义什么interface?
然后轮子看到这个annotation之后
就自动暴露这个方法为web service
microservice了,醒醒,你们都凹凸了
还在用几十年前的老方法写代码
所以说脚本不能写多 |
|