【发布时间】:2019-11-26 14:00:29
【问题描述】:
在我的项目中,我向 Stripe 提交了一个请求,该请求返回了一组存档的卡片
{
data = [{
address_zip_check = null,
country = US,
last4 = 4242,
funding = credit,
metadata = {},
address_country = null,
address_state = null,
exp_month = 4,
exp_year = 2024,
address_city = null,
tokenization_method = null,
cvc_check = pass,
address_line2 = null,
address_line1 = null,
fingerprint = TAw8rdASXn64,
name = null,
id = card_1FiwAkASrE1bJO6aaQ,
address_line1_check = null,
address_zip = null,
dynamic_last4 = null,
brand = Visa,
object = card,
customer = cus_GDUhOvTHo9
}, {
address_zip_check = null,
country = US,
last4 = 4444,
funding = credit,
metadata = {},
address_country = null,
address_state = null,
exp_month = 4,
exp_year = 2024,
address_city = null,
tokenization_method = null,
cvc_check = pass,
address_line2 = null,
address_line1 = null,
fingerprint = NW3wMUNiaA8g,
name = null,
id = card_1Fj3ZoASrE1bJO6aFu,
address_line1_check = null,
address_zip = null,
dynamic_last4 = null,
brand = MasterCard,
object = card,
customer = cus_GDUhOvTHo9
}], has_more = false, url = /v1/customers / cus_GDUhOvTHo9 / sources, object = list
}
问题在于JSONObject 和JSONArray 无法将其识别为有效的 JSON。
JSONObject jsonObject = new JSONObject(jsonStr);
JSONArray jsonArray = jsonObject.getJSONArray("data");
"Expected literal value..."
我如何解析这些信息?
有没有办法修改这个字符串,使它可以被识别为有效的 JSON?
我需要自己写解析方法吗?
【问题讨论】:
-
我要自己写解析方法吗?...我猜是的!
-
Stripe API 返回这样的东西是……很奇怪。无论如何,您可以使用他们提供的library 与他们的 API 进行交互吗?
-
@FedericoklezCulloca 必须使用后端作为中间人进行条带化请求。文档甚至说响应将返回一个有效的 json。 stripe.com/docs/api/cards/list -- "data": "value" 但是在后端调试响应返回的格式类似于 data: 'value' 并且当后端将其发送给客户端时,它的格式为 data = value。令人沮丧
-
您所看到的
key=value格式是否有可能以某种方式以toString()表示对象结构?大多数Map#toString实现都会给出这种类型的表示,例如 -
@MarkPeters 我几分钟前刚刚写过。 :-)