var csv = "FirstName,LastName,dob,phone"+
"John,Smith,10/01/1998,21234123"+
"Millie,Henderson,23/03/2000,21768345"+
"Briana,Wright,23/03/1976,22321467";
function csvJSON(csv){
var values=csv.split(',');
var index =-1;
var lines = [];
for(var i=0;i<values.length; i++){
lines[index] = lines[index]+ values[i]+ ",";
if (i % 4==0){
index++;
}
}
var result = [];
var headers=lines[0].split(',');
lines.splice(0, 1);
lines.forEach(function(line) {
var obj = {};
var currentline = line.split(',');
headers.forEach(function(header, i) {
obj[header] = currentline[i];
});
result.push(obj);
});
return result; //JavaScript object
//return JSON.stringify(result); //JSON
}
console.log(csv)
console.log(csvJSON(csv))
Альтернатива предложенным изменениям в ReflectionHelper в других ответах должна звонить pi.GetSetMethod(false)
и посмотрите, является ли результат пустым.
Необходимо использовать BindingFlags. Что-то как
PropertyInfo property = type.GetProperty("MyProperty", BindingFlags.Public | BindingFlags.SetProperty | BindingFlags.Instance);
Хорошо немного трудно сказать, так как у Вас есть класс "ReflectionHelper", где мы не видим источник. Однако мое первое предположение - то, что Вы правильно не устанавливаете атрибут BindingFlags когда Вы тип вызова. GetProperty. Вы должны ИЛИ в Общедоступном флаге перечисления, чтобы гарантировать, что только Общедоступные значения возвращены.
В Вашем ReflectionHelper. GetPropertyInfo (), Вы, по-видимому, к boundObjectType. GetType ().GetProperties (), где параметр BindingFlags, по-видимому, включает BindingFlags. NonPublic. Вы хотите указать просто BindingFlags. Общественность
Назовите GetSetMethod на PropertyInfo, получите MethodInfo и исследуйте его свойства, как IsPublic.