我正在尝试创建一个JSON字符串但是在使用任何工具验证JSON字符串时我总是遇到异常 -
下面是我的JSON字符串,我无法正确验证 -
{“script”:“#!/ bin / bash hello = $ jj1 echo $ hello echo $ jj1 echo $ jj2 for $ jj3中的el1为$ jj4中的el2做回声\“$ el1 \”做echo \“$ el2 \” 在$(ls)中为我完成;做echo项:$ i done“}
总是给我 -
Invalid characters found.
我还应该逃避什么?
下面是我想要表示为JSON字符串的shell脚本 -
#!/bin/bash
hello=$jj1
echo $hello
echo $jj1
echo $jj2
for el1 in $jj3
do
echo "$el1"
done
for el2 in $jj4
do
echo "$el2"
done
for i in $( ls ); do
echo item: $i
done
如何使用jackson或其他库使上述内容成为有效的JSON字符串。
答案 0 :(得分:2)
您可以使用.mayBeJSON(String str)库中的JSONUtils来验证java中的JSON
或者
验证JSON的一个疯狂的想法,尝试解析它并捕获异常:
public boolean isJSONValid(String test)
{
boolean valid = false;
try {
new JSONObject(test);
valid = true;
}
catch(JSONException ex) {
valid = false;
}
return valid;
}
答案 1 :(得分:0)
你所拥有的确实是一个有效的JSON原始字符串。在shell终端中,您需要使用单引号来引用它以满足命令提示符转义序列。
func widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets {
var newInsets = defaultMarginInsets
newInsets.bottom = 20
return newInsets
}
像这样:
$ echo'{“script”:“#!/ bin / bash hello = $ jj1 echo $ hello echo $ jj1 echo $ jj2 for $ jj3中的el1为$ jj4中的el2做回声\”$ el1 \“在$(ls)中为i做了echo \“$ el2 \”;做echo项:$ i done“}'| jq'。'