form2js icon indicating copy to clipboard operation
form2js copied to clipboard

object2array not producing correct array names 100% of the time

Open boxxxie opened this issue 14 years ago • 2 comments

below is taken from the example html code in the dev branch, and my own. i don't see a difference in my JSON or the example JSON... mine is valid and comes from couchDB.

the example JSON produces the array names properly. 18 Object { name="bar.Addresses[1].Zip", value="98765"} 19 Object { name="bar.Addresses[1].City", value="LA"} 20 Object { name="bar.Addresses[1].Street", value="Under the bridge"}

my JSON produces names that are not correct. 25 Object { name="taxes", value="2"} 26 Object { name="taxes", value="235235"} 27 Object { name="taxes", value=6}

{ "foo":{ "radio":"3", "name":{ "first":"Foo-First", "last":"Foo-Last" }, "selectArray":[ "green", "yellow" ], "checkboxArray":[ "steak", "chicken" ] }, "bar":{ "name":{ "first":"Bar-First", "last":"Bar-Last" }, "Emails":[ "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]" ], "Addresses":[ {"Zip":"12345","City":"NY","Street":"13, Boardwalk"}, {"Zip":"98765","City":"LA","Street":"Under the bridge"} ] } }

from example JSON js2form.html

fieldValues 0 Object { name="foo.radio", value="3"} 1 Object { name="foo.name.first", value="Foo-First"} 2 Object { name="foo.name.last", value="Foo-Last"} 3 Object { name="foo.selectArray[0]", value="green"} 4 Object { name="foo.selectArray[1]", value="yellow"} 5 Object { name="foo.checkboxArray[0]", value="steak"} 6 Object { name="foo.checkboxArray[1]", value="chicken"} 7 Object { name="bar.name.first", value="Bar-First"} 8 Object { name="bar.name.last", value="Bar-Last"} 9 Object { name="bar.Emails[0]", value="[email protected]"} 10 Object { name="bar.Emails[1]", value="[email protected]"} 11 Object { name="bar.Emails[2]", value="[email protected]"} 12 Object { name="bar.Emails[3]", value="[email protected]"} 13 Object { name="bar.Emails[4]", value="[email protected]"} 14 Object { name="bar.Emails[5]", value="[email protected]"} 15 Object { name="bar.Addresses[0].Zip", value="12345"} 16 Object { name="bar.Addresses[0].City", value="NY"} 17 Object { name="bar.Addresses[0].Street", value="13, Boardwalk"} 18 Object { name="bar.Addresses[1].Zip", value="98765"} 19 Object { name="bar.Addresses[1].City", value="LA"}

20 Object { name="bar.Addresses[1].Street", value="Under the bridge"}

{ "_id": "HB - test", "_rev": "1-a8cb317e9e4faf750d675843cb91c58e", "ids": { "chain": "hero burger", "chain_min": "HB", "store": "test store", "store_min": "test", "store_num": -1 }, "address": { "country": "Canada", "street": [ "adfaf", "asdfasdf", "asdf" ], "city": "Toronto", "state_prov": "Ontario", "zip_postal": "M5N L7z", "phones": [ "23452435", "23452345", "23452345" ], "emails": [ "a@a", "b@b", "c@c" ] }, "contact": "tony", "operation_hours": [ { "days": "asdfasfd", "hours": "asfdasdf" }, { "days": "wrtt", "hours": "rw" } ], "taxes": [ { "taxId": "0", "number": "23452345", "percent": 4 }, { "taxId": "1", "number": "24352345", "percent": 5 }, { "taxId": "2", "number": "235235", "percent": 6 } ], "exemption": { "amount": "5.99", "enabled": true }, "website": "www.heroburger.com" }

from my JSON

fieldValues 0 Object { name="_id", value="HB - test"} 1 Object { name="_rev", value="1-a8cb317e9e4faf750d675843cb91c58e"} 2 Object { name="ids.chain", value="hero burger"} 3 Object { name="ids.chain_min", value="HB"} 4 Object { name="ids.store", value="test store"} 5 Object { name="ids.store_min", value="test"} 6 Object { name="ids.store_num", value=-1} 7 Object { name="address.country", value="Canada"} 8 Object { name="address.street", value="adfaf\nasdfasdf\nasdf"} 9 Object { name="address.city", value="Toronto"} 0 Object { name="address.state_prov", value="Ontario"} 11 Object { name="address.zip_postal", value="M5N L7z"} 12 Object { name="address.phones", value="23452435\n23452345\n23452345"} 13 Object { name="address.emails", value="a@a\nb@b\nc@c"} 14 Object { name="contact", value="tony"} 15 Object { name="operation_hours", value="asdfasfd"} 16 Object { name="operation_hours", value="asfdasdf"} 17 Object { name="operation_hours", value="wrtt"} 18 Object { name="operation_hours", value="rw"} 19 Object { name="taxes", value="0"} 20 Object { name="taxes", value="23452345"} 21 Object { name="taxes", value=4} 22 Object { name="taxes", value="1"} 23 Object { name="taxes", value="24352345"} 24 Object { name="taxes", value=5} 25 Object { name="taxes", value="2"} 26 Object { name="taxes", value="235235"} 27 Object { name="taxes", value=6} 28 Object { name="exemption.amount", value="5.99"} 29 Object { name="website", value="www.heroburger.com"}

boxxxie avatar Oct 13 '11 22:10 boxxxie

when i copy the object2array code into it's own file and run it in node.js it works correctly on my data...

boxxxie avatar Oct 14 '11 14:10 boxxxie

Tried to reproduce using your JSON data, also have no error. BTW fixed error with exemption.enabled field.

maxatwork avatar Nov 13 '11 10:11 maxatwork