8

I would like to make the path to data contained in JSON variable. The code I have now looks like this:

function writeDB(block) { $.getJSON('js/data.js', function(data) { if (block == "path1") { var adr = data.test.path1.db; }; if (block == "path2") { var adr = data.test.path2.db; }; if (block == "path3") { var adr = data.test.path3.db; }; var datastring=""; $.each(adr, function(i, field){ temp = encodeURIComponent($("#writeDB_"+block+" [name="+adr[i].abc+"]").val()); datastring += adr[i].abc+"="+temp+"&"; }); }); } 

The "if" parts I would like to simplify and make it variable, by using the variable 'block' directly into the "adr" path, something like this

var adr = "data.test."+block+".db"; 

But a string won't work, so its useless. Someone knows how I can fix that?

1

3 Answers 3

15

You want to use square bracket notation:

var adr = data.test[block].db; 
Sign up to request clarification or add additional context in comments.

Comments

3
if (typeof(data.test[block]) != "undefined") var adr = data.test[block].db; .... 

Comments

-1

Very simple solution.

const data={ "test":[ { db:"test0" }, { db:"test1" } ] } var adr0 = "data.test"+'[0]'+".db"; var adr1 = "data.test"+'[1]'+".db"; console.log(eval(adr0)) console.log(eval(adr1))

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.