验证JSON字符串

时间:2013-12-28 05:04:59

标签: java json jackson

我正在尝试创建一个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字符串。

2 个答案:

答案 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'。'