0
JSON/RUBY的新功能。 我有一個休息服務返回一個JSON字符串,我想解析這個到一個Ruby類。這是建議嗎?我試過下面的例子,並得到錯誤 - 無法將字符串轉換爲整數。這是我正在研究的一個rhomobile應用程序。我在想POJO - > JSON - > Ruby。任何意見,將不勝感激。將Ruby映射到Ruby類的JSON - 不能將字符串轉換爲整數
Ruby
@@get_result = @params['body']
puts "@@get_result : #{@@get_result}"
data2 [email protected]@get_result
cust1 = data2["PolicyList"].map { |rd| PolicyList.new(rd["policyNbr"], rd["systemId"], rd["insuredName"],
rd["type"], rd["statusCd"], rd["statusDes"], rd["payorZipcode"],
rd["lastPaymentDate"], rd[lastPaymentAmount], rd["pastDueDate"], rd["pastDueAmount"],
rd["currentDueDate"], rd["currentDueAmount"], rd["eft"],
rd["suspenseAmt"], rd["expireTime"]) }
類
class PolicyList
attr_accessor :policyNbr, :systemId, :insuredName,
:type, :statusCd, :statusDes, :payorZipcode,
:lastPaymentDate,:lastPaymentAmount,:pastDueDate,
:pastDueAmount,:currentDueDate,:currentDueAmount,:eft,
:suspenseAmt,:expireTime
def initialize(policyNbr, systemId,insuredName,type,statusCd,statusDes,payorZipcode,lastPaymentDate,lastPaymentAmount,
pastDueDate,pastDueAmount,currentDueDate,currentDueAmount,eft,suspenseAmt,expireTime)
@systemId = systemId
@insuredName = insuredName
@type = type
@statusCd = statusCd
@statusDes = statusDes
@payorZipcode = payorZipcode
@lastPaymentDate = lastPaymentDate
@lastPaymentAmount = lastPaymentAmount
@pastDueDate = pastDueDate
@pastDueAmount = pastDueAmount
@currentDueDate = currentDueDate
@currentDueAmount = currentDueAmount
@eft = eft
@suspenseAmt = suspenseAmt
@expireTime = expireTime
end
end
返回的JSON
[{"policyNbr":"0000001","systemId":"MB","insuredName":"JOHN DOE ","type":"MEMBERSHIP","statusCd":"01","statusDes":"PAID","payorZipcode":"99999","lastPaymentDate":"07/12/2012","lastPaymentAmount":25.00,"pastDueDate":"","pastDueAmount":0.00,"currentDueDate":"","currentDueAmount":0.00,"eft":false,"suspenseAmt":false,"expireTime":1362152384971},{"policyNbr":"0000002","systemId":"PC","insuredName":"JOHN DOE","type":"AUTO","statusCd":"01","statusDes":"PAID","payorZipcode":"99999","lastPaymentDate":"02/15/2013","lastPaymentAmount":308.50,"pastDueDate":"","pastDueAmount":0.00,"currentDueDate":"","currentDueAmount":0.00,"eft":false,"suspenseAmt":false,"expireTime":0},{"policyNbr":"0000003","systemId":"PC","insuredName":"JOHN DOE","type":"HOME","statusCd":"01","statusDes":"PAID","payorZipcode":"99999","lastPaymentDate":"09/05/2012","lastPaymentAmount":149.00,"pastDueDate":"","pastDueAmount":0.00,"currentDueDate":"","currentDueAmount":0.00,"eft":false,"suspenseAmt":false,"expireTime":0}]
注意我也是固定的lastPaymentDate鍵(它需要引號) – rainkinz 2013-03-01 16:09:38
感謝。我跑你的建議,並得到錯誤:未初始化的常量。初始化我的PolicyList類並在map函數中調用new有問題嗎? – 2013-03-01 16:14:17
什麼是未初始化的常量?你正在使用這個代替你的例子中相關的代碼位? – rainkinz 2013-03-01 16:16:10