繁体   English   中英

从textarea解析json到api调用

[英]parsing json from textarea to api call

我正在尝试创建某种json请求/响应模拟器。 这是一个与外部api通信的nodejs应用。

我有一个textarea,可以在其中输入一小段JSON代码,例如

 someJson = JSON.stringify({
     "z": {
          "test": "....."
     },
     "v": {
          "test2": "......"
     }
 });

并提交表单,然后将其发布到后端,然后该后端使用该数据调用外部api。

如何将文本从文本区域转换为可以在其上运行JSON.stringify的对象? 仅在文本上运行stringify,就会添加反斜杠,并且不能正确删除空格。 即使我要删除反斜杠和空格,它仍然是字符串,并且外部api非常严格。

更新:

添加一个jsfiddle

http://jsfiddle.net/b5drLnnq/1/

问题是可能存在具有空格或空格的有效数据,但是在删除空格或从对象的其余部分添加反斜杠的过程中会将其删除。

使用正则表达式获取括号之间的文本,即JSON.stringify():

var textAreaText = $('#textarea_id').val();
var rgx = /\(([^)]+)\)/;
var match = textAreaText.match(rgx);

var someJson = JSON.stringify(match[1]);

编辑:您想要的更改

var textAreaText = $('#txtArea').val();
//changed regex to match braces        
var rgx = /\{([^)]+)\}/;        
  var match = textAreaText.match(rgx);
//match is an array
jsonmatch = match[1];
jsonmatch = jsonmatch.replace(/(\r\n|\n|\r|\t| )/gm,"");
//replace lost braces
jsonstr = JSON.stringify('{'+jsonmatch+'}');

JSFiddle: http : //jsfiddle.net/sameersemna/ofjpLx57/2/

使用$(<your selector).val()获取区域文本将为您提供文本。 比起您可以用自己的函数清除文本并将其分配给对象并对其进行字符串化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM