在Javascript中将Blob文本转换为array/JSON对象
如何将Blob文本(从oracledb查询接收)转换为array或JSON对象,以便获得所需的items值 例如:在Javascript中将Blob文本转换为array/JSON对象,javascript,arrays,json,blob,Javascript,Arrays,Json,Blob,如何将Blob文本(从oracledb查询接收)转换为array或JSON对象,以便获得所需的items值 例如: var connection = new ActiveXObject("ADODB.Connection"); var connectionstring = "some conection string"; connection.Open(connectionstring);
var connection = new ActiveXObject("ADODB.Connection");
var connectionstring = "some conection string";
connection.Open(connectionstring);
var rs = new ActiveXObject("ADODB.Recordset");
var queryString="Select COLUMNNAME from SOMETABLE where id=123456"
rs.Open(queryString, connection);
var val=rs.fields(0).value;
在val
中,我得到了如下所示的单元格blob值
\[(\22transaction_id\22,variant \224937178\22);(\22deal_tracking_id\22,variant \224876812\22);(\22instrument_type\22,variant \22COMM-VT\22);(\22internal_portfolio\22,variant \22MA_STRUCTURED_BUY\22);(\22internal_contact\22,variant \22C19850\22);(\22transaction_status\22,variant \22Validated\22);(\22last_update_user\22,variant \22ENDUR_MGR02\22);(\22last_updated\22,variant 2015-11-25T02\3a32\3a00);(\22commodity\22,variant \22Natural Gas\22);(\22source_system\22,variant \22EndurGO\22);(\22input_date\22,variant 2015-10-06T00\3a00\3a00);(\22last_exercise_date\22,variant 2015-11-27T14\3a00\3a00);(\22product_type\22,variant 103)]
从上面的blob中,我想得到“transaction_id”的值
如何将上述值转换为Javascript中的某个数组或JSON格式???以获得此值:
[{
"transaction_id" : "4937178",
"deal_tracking_id" : "4876812",
"instrument_type" : "COMM-VT",
"internal_portfolio" : "MA_STRUCTURED_BUY",
"internal_contact" : "C19850",
"transaction_status" : "Validated",
"last_update_user" : "ENDUR_MGR02",
"last_updated" : "2015-11-25T02:32:00",
"commodity" : "Natural Gas",
"source_system" : "EndurGO",
"input_date" : "2015-10-06T00:00:00",
"last_exercise_date" : "2015-11-27T14:00:00",
"product_type" : "103"
}]
你必须:
- 移除(val.replace('(','')
- 移除\22val.replace('\22','')
- 替换);为,val.Replace(');',',')李>
- 将,variant替换为:val.Replace(',variant',':')李>
- 将\3a替换为:val.Replace('\3a',':');(日期格式!)
- 将[替换为[{val.Replace('[','[{')
- 将]替换为}]val.Replace(']','}]')李>
另外,要获得有效的JSON,所有值都应该是字符串类型(数字除外)。事务id的值应该是变量号吗?如
variant\224937178\22)代码>
假设您总是在寻找那个变量号,并且您收到的响应的格式总是相同的,那么您可以在Javascript中简单地使用Regex来提取ID
var filter = /(\b[\w]{14}\b)\S,\b[\w]{7}\s\W(\d+)/.exec(val);
if (filter === null) {
console.log("There was an error, the Regex came up empty.");
} else {
if (filter[1] === "transaction_id") {
var transaction_id = filter[2];
} else {
var transaction_id = null;
}
}
您可以运行下面的代码片段,查看如何将HTML输入到页面上。
var=“\[(\22transaction\u id\22,variant\224937178\22);(\22deal\u tracking\u id\22,variant\224876812\22);(\22instrument\u type\22,variant\22COMM-VT\22);(\22internal\u portfolio\22,variant\22MA\u-STRUCTURED\u-BUY\22);(\22internal\u-contact\22,variant\22C19850\22);(\22transaction\22交易状态\22,variant\22已验证\22);(\22last\u update\u user\22,variant\22ENDUR\u MGR02\22);(\22last\u updated\22,variant 2015-11-25T02\3a32\3a00);(\22commodity\22,variant\22Natural Gas\22);(\22source\u system\22,variant\22EndurGO\22);(\22input\u date\22,variant 2015-10-06T00\3a00\3a00);(\22last\3a00练习日期\22,variant 2015-11-27T14\3a00\3a00);(\22,产品类型103)“;
var filter=/(\b[\w]{14}\b)\S\b[\w]{7}\S\w(\d+/.exec(val);
如果(筛选器===null){
$('test').html(哦,正则表达式是空的);
}否则{
var事务_id=过滤器[2];
if(过滤器[1]=“事务id”){
$('test').html(“
事务ID:“+Transaction\u ID+”
”);
}否则{
$('test').html(“呃,哦,没有事务id存在”
”;
}
}
。错误{
背景色:红色;
颜色:#fff;
字体大小:粗体;
}
.成功{
背景颜色:浅绿色;
}
谢谢你的回复。但是有没有其他方法或函数可以将blob整数值转换为array/JSON?我猜你正在使用ADOdb。如果是这样,你可以看看这个响应:JS中的这种解析真的是个坏主意。