我正在尝试将JSON有效负载插入memsql
JSON类型列,但由于以下原因导致失败。
我的JSON内容有'?'
个字符
我试图通过以下方式逃避'?'
,但它对我没有用。
我得到的例外是:
Root Exception stack trace:
java.lang.IndexOutOfBoundsException: Index: 0
Ex payload:"问号内容?"
1. #[org.mule.util.StringUtils.replace(payload,"?","\\?")]
结果:"问号内容\?"
2. #[org.mule.util.StringUtils.replace(payload,"?","\?")]
结果:不允许使用上述表达式
如果我使用有效载荷"问号内容"然后成功插入。
请帮助我如何在将{J}内容保存到'?'
时将memsql
转移到我的JSON内容中?
答案 0 :(得分:0)
'\?本身是一个转义序列,所以你必须使用“\\?”产生“\?”哪个应该与memsql一起使用。
#[org.mule.util.StringUtils.replace(payload,"?","\\\\?")]
希望这有帮助。
答案 1 :(得分:0)
从您的异常外观来看,您似乎要求它替换有效负载,但您没有将其分配给任何东西。
取消文档:
它基本上说它正在尝试替换字符串中的项,并且该方法本身返回一个字符串。基于我在堆栈跟踪中可以告诉的内容,似乎您将null或未初始化的变量传递给试图解析str [0]的东西,这会返回一个超出边界的数组错误。
纠正这种情况的方法是做一些事情:
payload = org.mule.util.StringUtils.replace(payload,"?","\\\\?")
哪个应该替换任何实例?用\?并将其重新写入有效负载变量。也就是说,当您在程序中稍后对其进行评估时,有效负载实际上可能为空,这可能表明存在更大的问题。