我有自动生成.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相DT01P-DT01P / 08-DT01P / 16”,“ cloaisp”:“ 0”},{“ matin”: “ 12”,“ matl”:“ 11”,“ tieude”:“ 3相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相DT03P-RF”,“ cloaisp”:“ 3”},{“ matin”:“ 9 “,” matl“:” 11“,” tieude“:” 1相DT01P80-RF-mẫu2“,” cloaisp“:” 1“},{” matin“:” 10“,” matl“:” 11“ ,“ tieude”:“ 3相DT03P-RF-mẫu2”,“ cloaisp”:“ 3”},{“ matin”:“ 4”,“ matl”:“ 11”,“ tieude”:“ 1相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相DT01P-RFmẫu2”,“ cloaisp”:“ 1”},{“ matin”:“ 28”,“ matl”:“ 11”,“ tieude“:” 1相DT01P80-RFm-đunRF g nnngoài“,” cloaisp“:”“},{” matin“:” 26“,” matl“:” 11“,” tieude“:” 1相DT01M10 “,” cloaisp“:”“},{” matin“:” 27“,” matl“:” 11“,” tieude“:” 1 pha DT01M 80“,” cloaisp“:”“},{” matin“:” 16“,” matl“:” 11“,” tieude“:” 3 pha DT03M01“,” cloaisp“:” 3“},{” matin “:” 20“,” matl“:” 11“,” tieude“:” 3相DT03M10“,” cloaisp“:” 3“},{” matin“:” 14“,” matl“:” 11“, “ tieude”:“ 3相DT03M05”,“ cloaisp”:“ 3”},{“ matin”:“ 15”,“ matl”:“ 11”,“ tieude”:“ Bhu thuthậpdữ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ộđịnhtuyếndữliệu路由器”,“ cloaisp”:“ 2”},{“ matin”:“ 7”,“ matl”:“ 11”,“ tieude”:“BộchuyểnđổiRS232 / RS485”,“ cloaisp“:” 2“},{” matin“:” 8“,” matl“:” 11“,” tieude“:” Bộcchỉsốcôngtơquasó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”: “ HMD的MDMS”,“ cl oaisp“:” 2“},{” matin“:” 25“,” matl“:” 11“,” tieude“:”Bộhiểnthịchỉsố在家中显示“,” 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 RFrộngchứcnăngRF chocôtôLandis“,” cloaisp“:”“},{” matin“:” 37“,” matl“:” 11“,” tieude“:”Thiếtbịcảnhbáosựcốtrênlướitrung thế“,” 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字符串内容)... cloaisp“:”“}]”“,但是当我使用
for (var i = 0; i < rowCount; i++) { var row = jsontext[i];}

,行仅是“ [”。这意味着JSON.parse(jsontext_prdbank)仅返回一个字符串,而不是json数据。在这种情况下,如何获取要使用的json数据?

最佳答案

因为您在函数中使用了以下代码:

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);


然后,您可以使用以下内容:

// jsontext_prdbank will get a parsed object, no need to parse it again
var jsontext_prdbank = (readTextFile('../ContentPage/prdbank.txt'));

07-24 14:11