android parse json,android - How to parse a JSON string? - Stack Overflow

If you already know the expected structure of the data, I recommended using GSON. You can find a pretty good tutorial here, explaining how to deserialize a JSON string in the section Basics of JSON-Java Deserialization.

String userJson = "{'age':26,'email':'norman@futurestud.io','isDeveloper':true,'name':'Norman'}";

Gson gson = new Gson();

UserSimple userObject = gson.fromJson(userJson, UserSimple.class);

For your case, first make sure that your JSON string is properly formatted. I think it should look like that:

{

"data": {

"methodName": "matchRequest",

"arguments": [

{

"matchId": 2963,

"gamerName": "pro100_Ocean",

"gamerId": "4c04d9f0-c1e7-410f-8ad8-a95922556bbd",

"gamerFullName": null,

"gamerPhotoUrl": "data\\\\user\\\\4c04d9f0-c1e7-410f-8ad8-a95922556bbd\\\\profile\\\\cropped3649162562321249118.jpg",

"gamerRaiting": 1,

"gamerCardScore": 0,

"correctAnswerScore": 50,

"incorrectAnswerScore": -50,

"isBot": false,

"myCardScore": 0

}

],

"identifier": "00000000-0000-0000-0000-000000000000"

}

}

So the data key in the root should be one of your models instead of a String. A possible model mapping is like following (I got rid of the @SerializedName and @Expose annotations to emphasize the structure):

data class RequestGameModel(

val `data`: GameModel? = null

)

data class GameModel(

val methodName: String? = null,

val arguments: List? = null,

val identifier: String? = null

)

data class GameArguments(

val matchId: Int = -1,

val gamerName: String? = null,

val gamerId: String? = null,

val gamerFullName: String? = null,

val gamerPhotoUrl: String? = null,

val gamerRaiting: Int = 0,

val gamerCardScore: Int = 0,

val correctAnswerScore: Int = 0,

val incorrectAnswerScore: Int = 0,

val isBot: Boolean = false,

val myCardScore: Int = 0

)

Note that I used val and not var, so make sure that you configured GSON to allow serialization of final fields.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值