[英]How to send Json String using REST to java webservice in Parameter in android?
[英]How to have an object stored as a string in a string parameter of a rest webservice
我正在使用REST Web服务,我可以在Web服务中使用一个灵活的字符串参数,该参数可以接受存储为字符串的任何对象。
例如我有这个示例RequestJson:
public class RequestJSON {
String username;
String password;
String data;
}
在data参数中,我要接受任何json对象,
@Path("/rest")
public class RESTWebservice {
@POST
@Path("/request")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public ResponseJSON sampleWeb(RequestJSON requestJson) {
logger.info(requestJson.toString());
}
}
我们如何使Web服务接受请求Json的data参数中要发送的任何json:
例如这样:
{
"username":"abc",
"password":"xyz",
"data":{"number":"4","input":"","msg":{"msgArr":["hello","test"]}},
}
有可能吗?
是的,有可能:
import java.util.List;
public class Main {
enum DATATYPE {
STRING,
FLOAT,
INTEGER,
BOOLEAN; // could add lists but then it gets nasty because you have to have a delimiter
}
class ColectionOfData {
List<DATA> data;
}
class DATA {
String name;
DATATYPE datatype; // form should inform of the data type
String data;
public DATA(String name, DATATYPE datatype, String data) {
this.name = name;
this.datatype = datatype;
this.data = data;
}
public Object convert() {
switch(datatype) {
case BOOLEAN:
return Boolean.parseBoolean(data);
case FLOAT:
return Float.parseFloat(data);
case INTEGER:
return Integer.parseInt(data);
case STRING:
return data;
default:
return null;
}
}
}
}
但这并不漂亮。 您可以减少它的丑陋程度,但它始终是丑陋的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.