我有自动生成.txt文件的代码,如下:
DataTable dt = ds.Tables[0];
string prdcontent = DataTableToJSONWithStringBuilder(dt);//this will generate json string
System.IO.File.WriteAllText(Server.MapPath("~/ContentPage/prdbank.txt"), prdcontent, Encoding.UTF8);
行。我有一个包含此内容的.txt文件:
[{“matin”:“1”,“matl”:“11”,“tieude”:“1 pha DT01P - DT01P / 08 - DT01P / 16”,“cloaisp”:“0”},{“ matin“:”12“,”matl“:”11“,”tieude“:”3 pha DT03P“,”cloaisp“:”0“},{”matin“:”17“,”matl“:”11“ ,“tieude”:“1 pha DT01P60-RF”,“cloaisp”:“1”},{“matin”:“18”,“matl”:“11”,“tieude”:“3 pha DT03P05”,“ cloaisp“:”3“},{”matin“:”19“,”matl“:”11“,”tieude“:”3 pha DT03P-RF“,”cloaisp“:”3“},{”matin“ :“9”,“matl”:“11”,“tieude”:“1 pha DT01P80-RF - mẫu2”,“cloaisp”:“1”},{“matin”:“10”,“matl”: “11”,“tieude”:“3 pha DT03P-RF - mẫu2”,“cloaisp”:“3”},{“matin”:“4”,“matl”:“11”,“tieude”:“ 1 pha DT01P80-RF“,”cloaisp“:”1“},{”matin“:”5“,”matl“:”11“,”tieude“:”1 pha DT01P60-RF - mẫu2“,”cloaisp “:”1“},{”matin“:”22“,”matl“:”11“,”tieude“:”1 pha DT01P-RF“,”cloaisp“:”1“},{”matin“: “23”,“matl”:“11”,“tieude”:“1 pha DT01P-RFmẫu2”,“cloaisp”:“1”},{“matin”:“28”,“matl”:“11 “,”tieude“:”1 pha DT01P80-RFmô-đunRFPắnngoài“,”cloaisp“:”“},{”matin“:”26“,”matl“:”11“,”tieude“:” 1 pha DT01M10“,”cloaisp“:”“},{”matin“:”27“,”matl“:”11“,”tieude“:”1 pha DT 01M80“,”cloaisp“:”“},{”matin“:”16“,”matl“:”11“,”tieude“:”3 pha DT03M01“,”cloaisp“:”3“},{”matin “:”20“,”matl“:”11“,”tieude“:”3 pha DT03M10“,”cloaisp“:”3“},{”matin“:”14“,”matl“:”11“, “tieude”:“3 pha DT03M05”,“cloaisp”:“3”},{“matin”:“15”,“matl”:“11”,“tieude”:“BộthậtữdữliệuDCU”,“ cloaisp“:”2“},{”matin“:”13“,”matl“:”11“,”tieude“:”调制解调器RMR TurboJet“,”cloaisp“:”2“},{”matin“:” 21“,”matl“:”11“,”tieude“:”HệthốngRFSPIDER“,”cloaisp“:”2“},{”matin“:”6“,”matl“:”11“,”tieude“ :“BộđịnushuếndữliệuRouter”,“cloaisp”:“2”},{“matin”:“7”,“matl”:“11”,“tieude”:“BộchuyểnđổiRS232/ RS485”,“ cloaisp“:”2“},{”matin“:”8“,”matl“:”11“,”tieude“:”BộđọcchỉsốcôngtơsosóngvôtuyếnRF-EXT“,”cloaisp“:” 2“},{”matin“:”11“,”matl“:”11“,”tieude“:”HệthốngGiámsátHEMS“,”cloaisp“:”2“},{”matin“:”2“ ,“matl”:“11”,“tieude”:“Thiếtbị掌上单位”,“cloaisp”:“2”},{“matin”:“3”,“matl”:“11”,“tieude”: “HệthốngthuthậpvàquảnlữdữliệuđođếmMDMS”, “cloaisp”:“2”},{“matin”:“25”,“matl”:“11”,“tieude”:“BộhiểnthịchỉsốIn Home display”,“cloaisp”:“”},{ “matin”:“29”,“matl”:“11”,“tieude”:“BộmởrộngELSTER-RF”,“cloaisp”:“”},{“matin”:“31”,“matl”: “11”,“tieude”:“T.bịgiámsátchấtlượnglướiđiện”,“cloaisp”:“”},{“matin”:“36”,“matl”:“11”,“tieude”:“ BộmởrộngchứcnăngRFchocôngtơLandis“,”cloaisp“:”“},{”matin“:”37“,”matl“:”11“,”tieude“:”Thiếtbịcảnhbáosựcốtrênlưới trungthế“,”cloaisp“:”“}}
现在,我想读取这个txt文件并使用结果作为json数据,我正在使用这个函数:
var jsontext_prdbank = (readTextFile('../ContentPage/prdbank.txt'));
var jsontext = JSON.parse(jsontext_prdbank);
使用readtextfile函数:
function readTextFile(file) {
var rawtext;
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.onreadystatechange = function () {
if (rawFile.readyState === 4) {
if (rawFile.status === 200 || rawFile.status == 0) {
var allText = JSON.stringify(rawFile.responseText);
rawtext = allText;
}
}
}
rawFile.send(null);
return rawtext;
}
我得到这样的jsontext:“[{”matin“:”1 ....(json string content)... cloaisp“:”“}]”但是当我使用
时
for (var i = 0; i < rowCount; i++) {
var row = jsontext[i];}
,行只是“[”。所以这意味着JSON.parse(jsontext_prdbank)只返回一个字符串,而不是一个json数据。如何在这种情况下使用json数据?
答案 0 :(得分:1)
只需从原始代码中移除pdb
,JSON.stringify
就是字符串
responseText
从var jsontext_prdbank = (readTextFile('../ContentPage/prdbank.txt'));
var jsontext = JSON.parse(jsontext_prdbank);
function readTextFile(file) {
var rawtext;
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.onreadystatechange = function () {
if (rawFile.readyState === 4) {
if (rawFile.status === 200 || rawFile.status == 0) {
rawtext = rawFile.responseText;
}
}
}
rawFile.send(null);
return rawtext;
}
JSON.parse
答案 1 :(得分:1)
因为您在函数中使用了以下代码:
streamA.join(streamB, expr("streamA_ID = streamB_ID AND timeA BETWEEN timeB - INTERVAL 15 minutes and timeB"), joinType="{joinType}")
请改用以下内容:
var allText = JSON.stringify(rawFile.responseText);
rawtext = allText;
然后你可以使用以下内容:
// rawFile.responseText is already in string form
// so parse it into an object and assign it to allText
var allText = JSON.parse(rawFile.responseText);
答案 2 :(得分:1)
而不是JSON.stringify
,使用JSON.parse
将您的文件内容解析为JavaScript对象。