Javascript 在节点js中将字符串转换为JSON?
我正在使用NodeJS中的Web服务,它以这种奇怪的格式返回响应。我必须通过传递键名来提取某些值,并且我希望将响应转换为JSON以便于解析。我该怎么做呢 这是我从网络服务得到的Javascript 在节点js中将字符串转换为JSON?,javascript,json,node.js,Javascript,Json,Node.js,我正在使用NodeJS中的Web服务,它以这种奇怪的格式返回响应。我必须通过传递键名来提取某些值,并且我希望将响应转换为JSON以便于解析。我该怎么做呢 这是我从网络服务得到的 Data Source=*******;Initial Catalog=****;User ID=*******;Password= *******;MultipleActiveResultSets=True;Min Pool Size=5;Max Pool Size=5000;Conn ect Timeout=180;
Data Source=*******;Initial Catalog=****;User ID=*******;Password=
*******;MultipleActiveResultSets=True;Min Pool Size=5;Max Pool Size=5000;Conn
ect Timeout=180;Application Name=*****
我想提取数据源、用户ID、密码。您可以使用以下方法轻松解析它: 您可以使用
JSON.stringify(obj)
对其进行操作、删除或提取值,最后用JSON对其进行编码
注意:正如Oleg V.Volkov评论的那样,如果源字符串的键或值中包含delimeters(“;”和“=”),则它将不起作用。您可以使用以下方法轻松解析它: 您可以使用
JSON.stringify(obj)
对其进行操作、删除或提取值,最后用JSON对其进行编码
注意:正如Oleg V.Volkov评论的那样,如果源字符串的键或值中包含delimeters(“;”和“=”),它将不起作用。如果返回的模式是常量,可以使用regexp实现:
var result = str.match(/Source=(.*);Initial.*ID=(.*);Password=(.*);Multiple/)
然后从匹配的组中获取所需的值
DataSource = result[1];
UserId = result[2];
Password = result[3];
如果返回的模式是常量,则可以使用regexp实现:
var result = str.match(/Source=(.*);Initial.*ID=(.*);Password=(.*);Multiple/)
然后从匹配的组中获取所需的值
DataSource = result[1];
UserId = result[2];
Password = result[3];
Dario的答案基本上就是这样,但值得一提的是节点的
querystring
模块“免费”完成了这类工作
代码
const qs = require('querystring');
const s = `Data Source=*******;Initial Catalog=****;User ID=*******;Password=*******;MultipleActiveResultSets=True;Min Pool Size=5;Max Pool Size=5000;Connect Timeout=180;Application Name=*****`;
console.log(qs.parse(s, ';', '='));
产出:
{ 'Data Source': '*******',
'Initial Catalog': '****',
'User ID': '*******',
Password: '*******',
MultipleActiveResultSets: 'True',
'Min Pool Size': '5',
'Max Pool Size': '5000',
'Connect Timeout': '180',
'Application Name': '*****' }
Dario的答案基本上就是这样,但值得一提的是节点的
querystring
模块“免费”完成了这类工作
代码
const qs = require('querystring');
const s = `Data Source=*******;Initial Catalog=****;User ID=*******;Password=*******;MultipleActiveResultSets=True;Min Pool Size=5;Max Pool Size=5000;Connect Timeout=180;Application Name=*****`;
console.log(qs.parse(s, ';', '='));
产出:
{ 'Data Source': '*******',
'Initial Catalog': '****',
'User ID': '*******',
Password: '*******',
MultipleActiveResultSets: 'True',
'Min Pool Size': '5',
'Max Pool Size': '5000',
'Connect Timeout': '180',
'Application Name': '*****' }
使用
.Split(“;”)
拆分为对,然后使用.Split(“=”)
将每对拆分为k/v。如果值可以包括,这可能会更困难
和=
。使用拆分为对。拆分(“;”)
,然后使用将每对拆分为k/v。拆分(“=”)
。如果值可以包括,这可能会更困难代码>和=
。