【问题标题】:Validate JSON String验证 JSON 字符串
【发布时间】:2016-05-04 01:11:02
【问题描述】:

我正在尝试创建一个 JSON 字符串,但在使用任何工具验证 JSON 字符串时总是遇到异常 -

以下是我无法正确验证的 JSON 字符串 -

{"script":"#!/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\" 在 $( ls ) 中为 i 完成;回显项目:$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 字符串。

【问题讨论】:

  • 你用的是什么库?
  • 那是另一个问题。我不确定如何使用 jackson 或其他库将此 shell 脚本作为有效的 JSON 文档。所以我决定手动将此 shell 脚本表示为 JSON 字符串。更新了问题中的详细信息。
  • 好吧,我误解了getting an exception while validating the JSON String using any tool。你用的是什么工具?
  • 我用过JSON Formatter
  • Aahh .. 可能是他们在那个工具中有不同的窗口.. 早些时候,它显示无效.. 我猜,我做了一些更改,然后我再次尝试验证它,所以我想不知何故它向我展示了上一个窗口。无论如何.. 感谢您确认.. 除此之外,如果我有这样的 shell 脚本,是否有可能在 Java 中生成有效的 JSON 字符串?

标签: java json jackson


【解决方案1】:

您可以使用JSONUtils 库中提供的.mayBeJSON(String str) 在java 中验证JSON

否则

验证 JSON 的一个疯狂想法,尝试解析它并捕获异常:

public boolean isJSONValid(String test)
{
    boolean valid = false;
    try {
        new JSONObject(test);
        valid = true;
    }
    catch(JSONException ex) { 
        valid = false;
    }
    return valid;
}

【讨论】:

    【解决方案2】:

    你所拥有的确实是一个有效的 JSON 原始字符串。在 shell 终端中,为了满足命令提示符的转义序列,您确实需要使用单引号来引用它。

    {"script":"#!/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"}
    

    像这样:

    $ echo '{"script":"#!/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"}' | jq'.'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      • 2020-03-30
      • 2011-11-26
      相关资源
      最近更新 更多