Read the statement by Michael Teeuw here.
read csv-data and put it in an array
-
@Perlchamp should already be an array of row(of column name/value pairs)…
the JSON class has stringify(object) to convert json to text,
console.log(JSON.stringify(results of convert))
also has parse (from text form of json to object)
-
ok, now i have a dictionary (is that called though?) - always 4 columns (i will change that, if i read how to put it all in an array. in the moment i just have the output via console …)
[{"Geburtsmonat":"Januar","Geburtstag":"3","Geburtsjahr":"1940","Name":"Renate Stögger"},{...},{...}]
but i’m on the right way, thanks again :-)
-
[{"
array [ of objects {}, {}. {} ]
the names of the object elements are the names of the columns (row 1 in the csv) -
@sdetweil said in read csv-data and put it in an array:
the names of the object elements are the names of the columns (row 1 in the csv)
yes i know.
i thought it’s an dictionairy and not an array. but it’s ok … -
@Perlchamp the [ (open square bracket) means array in javascript
the array can be numbers, strings or objects (open squiggly bracket)
-
status:
i wanted to “play” with the jsonArray, but things like jsonArray[“birth”][0] or jsonArray.birth[3] will not be accepted, although it is listed in many websites … i try and try and read and read, but in the moment no solution. the parameter “length” count the number of letters and numbers ?
then I will have to deal with moment () first … -
@Perlchamp u did not show the code, so I will call the output of the csvtojson() birthday_info
example of how to navigate the json data
in module there would be no ‘var’ cause of the way the modulename and helper are packaged inside object
// if not using numbers but month names // make indexOf return 1-12, not 0-11 (dummy thing never matched 1st) // fix this with your language abbreviations // usually in lower case, then always convert data to lowercase for compare to prevent having users remember to get the case right var months= ["0", "jan","feb","mar"...."dec"] var today_day_month = moment().format("DDMM") // today would be "3004" // tomorrow will be "0105" // loop thru the array of birthday info from file, one 'row' per birthday for(var birthday of birthday_info) { // get the day/month string in numbers to match output of moment() // get the last 2 chars of the day and month with a 0 on front.. 01-09, 12, ---31, or 01-09,10/11/12 if( ("0"+birthday.Geburtstag).subString(-2)+("0"+months.indexOf(birthday.Geburtsmonat.toLowerCase())).subString(-2) == today_month_day) { // this birthday is for today condole.log(" birthday on "+ today_day _month+" is for "+birthday.Name); } } ``
-
i didn’t post the code, because it only was a status-info …
but here is the code. i think i will first try alone. if there any questions i will post them.
here is my array:[{"birth":"12.09.1967", "name":"Otto Billing"},{...}]
many thanks in advance
-
@Perlchamp ok, went to numbers, SO much easier!!
var today_day_month = moment().format("DD.MM") // today would be "30.04" // tomorrow will be "01.05" // loop thru the array of birthday info from file, one 'row' per birthday for(var birthday of birthday_info) { if( (birthday.birth.startsWith(today_day_month)) { // this birthday is for today console.log(" birthday on "+ today_day_month+" is for "+birthday.name); } }
-
@sdetweil said in read csv-data and put it in an array:
ok, went to numbers, SO much easier!!
ok, i will try. therefor my array don’t match, i think … that’s right ?