【问题标题】:JSON Object in JavaJava 中的 JSON 对象
【发布时间】:2010-12-23 13:41:39
【问题描述】:

如何将字符串 url = "http://abcdef.com/" 转换为具有字段 "url" ="http://abcdef.com/" 的 JSONObject?我得到的结果是:"url" = "http:\/\/abcdef.com".所以,我无法绕过'/'

【问题讨论】:

  • 你是说你对转义的斜线有问题吗?让它们在 JSON 字符串中转义是完全可以的。你对他们有什么具体问题吗?
  • 我必须使用 JSON 对象,其 url 格式为“abcdef.com”,在我的下一个模块中没有转义的反斜杠,就是这样
  • 作为记录(根据我删除的答案,因为问题最初不清楚),OP正在使用json-simple并希望防止JS转义。
  • 您知道反斜杠仅在 JSON 表示中需要吗?实际的字符串不包含任何反斜杠。
  • "反斜杠只在 JSON 中需要" -- 不,它们不是需要,它们被防御性地转义了。见stackoverflow.com/questions/1580647/…

标签: java json


【解决方案1】:

如果这是您的 JSONObject 序列化字符串的方式( 合法as per the JSON spec),除非您更改 JSONObject 的行为,否则无法直接绕过它。 (通过重写、子类化或包装——见下文。)

如果您有机会间接截获 JSONObject 输出,转换为字符串,并将所有 \/ 实例替换为 /

更新:我不熟悉您正在使用的具体实现,但如果您现有的代码需要 JSONObject 并采用 interface 而不是特定的类实现,您可以编写一个装饰器或包装器类,将一个实例保存到“真正的”JSONObject 类,并将所有内容委托给 JSONObject,但修复了字符串的转换,因此它将\/ 转换为/ 之后-事实自动发生。

【讨论】:

  • sry man,新来的.. :) 这正是我在此期间想要做的 :)。所以我要做的是我创建一个带有 url 字段的 JSONObject 作为“http:\/\/abcdef.com” 现在测试是否可以在没有转义的 backslshes 的情况下使用,我使用 JSONParser 解析它,然后提取我的 JSONObject 的 url 字段创建。然后它以正确的格式返回给我(它应该有,因此可以在下一个模块中使用)..thanx all :)
猜你喜欢
  • 2013-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-09
相关资源
最近更新 更多