问题描述
- getLong和getString获取的值不同
- 代码如下:
JSONObject contentObject = new JSONObject(content); JSONObject params = contentObject.getJSONObject(""response_params""); Log.d(""onTest""channel_id:"" + params.getString(""channel_id"")); Log.d(""onTest""channel_id:"" + params.getLong(""channel_id""));
日志打印:
08-21 12:46:21.470: DEBUG/onTest(25228): onMessage: content : {""response_params"":{""appid"":""1071410""channel_id"":""3537275240990320342""user_id"":""714893193627619861""}request_id"":1293438498} 08-21 12:46:21.480: DEBUG/onTest(25228): channel_id:3537275240990320342 08-21 12:46:21.480: DEBUG/onTest(25228): channel_id:3537275240990320128
为什么getLong 值是3537275240990320128
而String 值是3537275240990320342
解决方案
说明文档里是这样写的:
public long getLong (String name)
Returns the value mapped by name if it exists and is a long or can be coerced to a long. Note that JSON represents numbers as doubles so this is lossy; use strings to transfer numbers via JSON.
时间: 2024-11-01 21:38:47