str = "[[1,Warriors,NBA],[2,Kings,NBA],[3,Knicks,NBA]]"
varsa, bunu JavaScript'te bir diziye nasıl dönüştürebilirim?Bir diziye benzeyen bir dizgiyi gerçek diziye dönüştürme
Dizinin her öğesinin bir dizinin kendisi olduğu bir dizi.
Mümkün mü?
str = "[[1,Warriors,NBA],[2,Kings,NBA],[3,Knicks,NBA]]"
varsa, bunu JavaScript'te bir diziye nasıl dönüştürebilirim?Bir diziye benzeyen bir dizgiyi gerçek diziye dönüştürme
Dizinin her öğesinin bir dizinin kendisi olduğu bir dizi.
Mümkün mü?
Javascript'te yazılmış bazı javascript ayrıştırıcıları vardır. Bakınız: JavaScript parser in JavaScript, bu: https://github.com/mishoo/UglifyJS, bu: http://esprima.org/, bu: http://marijnhaverbeke.nl/acorn/.
Bu bir cevap değil, bir yorum olmalı. – RobG
Sen 2D diziler için araya bu ilkel fonksiyonu deneyebilirsiniz:
function customParse(data){
arr = []
for(var i = 0; i < str.length; i++){
if(str[i] == ','){
if(!isNaN(str[i-1])){
arr.push(',')
arr.push('"')
}else{
if(str[i-1] != "]"){
arr.push('"')
arr.push(',')
arr.push('"')
}else{
arr.push(',')
}
}
}else{
if(str[i] == ']' && str[i-1] != ']'){
arr.push('"')
}
arr.push(str[i])
}
}
return JSON.parse(arr.join(""))
}
str = "[[1,Warriors,NBA],[2,Kings,NBA],[3,Knicks,NBA]]"
result = customParse(str)
alert("Raw: "+result);
alert("Stringified: "+JSON.stringify(result));
ancak hile olacaktır. "eşleşme" değişkeni dizilerinizin dizisini içerir.
var str = "[[1,Warriors,NBA],[2,Kings,NBA],[3,Knicks,NBA]]";
var cleanStr = str.substring(1,str.length-1)
var matches = [];
var pattern = /\[(.*?)\]/g;
var match;
while ((match = pattern.exec(cleanStr)) != null)
{
matches.push(match[1].split(","));
}
Ayrıca, seçeneğe sahipseniz, yalnızca dizini javascript'te tanımlayın.
var list = [[1,'Warriors','NBA'],['2','Kings','NBA'],[3,'Knicks','NBA']];
var array = JSON.parse("[" + str + "]");
ya da dizelerden oluşan bir Array ile sona erecek .split()
kullanabilirsiniz.
Neden başlamak için bir dizi oluşturmak ya da en azından geçerli JSON – adeneo
Bu, içinde kalmış olduğunuz içerik biçimiyse, o biçimi anlayan kendi çözümleyicinizi yazmanız gerekir. Bu standart dışı formatı ayrıştırmak için önceden oluşturulmuş bir yol yoktur. – jfriend00
Bu dizenin kaynağı nedir? Kaynakta geçerli bir json yapmak – charlietfl