我有一个由文本区域组成的表单,感谢 Javascript 的行号。我使用这个表单来验证 JSON,就像 jsonlint.org 那样。用户输入一些 JSON,按下验证,然后得到答案。我自己没有解析文件,我使用 python 命令:
python -m json.tool input.json
如您所见,此命令需要一个文件。所以我正在做的是以下内容:
- 将表单数据写入文件
- 运行此命令并获取输出
- 如果没有错误,则输出到屏幕“有效 JSON”,如 jsonlint.org 否则显示程序给出的错误消息:“错误 .... line x column y (char z)”
Python 程序给出的行号对应于文件中的行号,而不是来自 textarea 的行号...使我的 Javascript 行号无用。顺便说一句,找到 2 的对应关系让我很难,因为它取决于我的文本区域的宽度,以及我在其中使用的字体,以及了解文件中的行号是如何设置的(我不太明白)
我怎么能找到 2 的对应关系?
谢谢
刚刚意识到:我的 textarea 看起来与您在 SOF 上提问时输入的完全相同:D
----- 编辑作为对 Ben 的回应 ----- 非常有趣。我实现了我要求使用名为“wrap”的 textarea 选项的功能。我设置为“软”:
<form method='post' action='/exec' id="jsonform" >
<textarea wrap="hard" name="json" id="json_input" rows="20" cols="150" placeholder="Enter JSON to validate.">{{ resp | safe }}</textarea>
<div align="center">
<input type='submit' value='Validate' id="button" >
</div>
</form>
但是,这会使有效的 JSON 无效。因为 Python 模块希望在换行符之前有引号......所以我需要为验证器提供 textarea="soft" 表单中的数据,并显示 textarea="hard" 表单中的数据。但我有一个表格。我还尝试了您给我的帖子中给出的代码,但由于某种原因它不起作用。而且我不知道Javascript(需要改变它。)所以我无法调试或调整代码...... HELLLP