java生成json对象_在Java中创建JSON对象的方法

以下是我想在我的iOS(

Swift)和

Android(Java)应用程序中使用的JSON主体.

{

"type" : "select",

"args" : {

"table" : "todo",

"columns": ["id", "title","completed"],

"where" : {"user_id": 1}

}

}

在Swift中,将上面的内容转换为字典非常简单易行:

let params: [String: Any] = [

"type" : "select",

"args" : [

"table" : "todo",

"columns" : ["id","title","completed"],

"where" : ["user_id" : 1]

]

]

在Java中,我使用GSON来完成上述操作,但我觉得我的解决方案很丑陋而且太长

public class SelectQuery {

@SerializedName("type")

String type = "select";

@SerializedName("args")

Args args;

public SelectTodoQuery(=) {

args = new Args();

args.where = new Where();

args.where.userId = 1;

}

class Args {

@SerializedName("table")

String table = "todo";

@SerializedName("columns")

String[] columns = {

"id","title","completed"

};

@SerializedName("where")

Where where;

}

class Where {

@SerializedName("user_id")

Integer userId;

}

}

有没有更好的方法在Java中执行此操作,以及如何在不使用GSON的情况下本地使用Java本地表示此JSON?

UPDATE

我没有要求提供一个帮助我完成上述工作的图书馆清单,我已经知道它们并且显然正在使用它们.我也不需要了解他们的表现.

我要求更好的实现(如果它存在),如果Java没有提供这样的功能,那也可以是一个公认的答案.

此外,还有一个在Java中本地执行相同操作的示例.

最佳答案 好吧,有几个库可用于对json进行序列化和反序列化对象.

GSON是最简单的一个,您可以将POJO(计划旧的Java对象)转换为JSON而无需注释它们.

LoganSquare是用于此目的的最佳库,它需要您注释您的字段,但性能非常高.

Github页面实际上讲述了LoganSquare与其他选项的基准研究.

ec5jc.jpg

还有其他一些像Moshi和Jackson,但考虑到平台的局限性,我发现LoganSquare是最好的.

As far as Native capability is concerned, Java so far does not provide

any such utility and if someone is not interested in Third partylibs, the project I have mentioned above are all open source objects,

one can fork them and implement their own version based on one’s

usecases.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值