简体   繁体   中英

javascript - How to get nested object from a FormData object [object Object]

I want to get the entire nested object (with all the props) of a value that is stored in a FormData. This is possible?

Example

 const formData = new FormData(); formData.append('k1', 123); formData.append('k2', 'ABC'); formData.append('k3', { a: 1, b: '2' }); data = {}; formData.forEach((value, key) => { console.log(`Key: ${key}`, { key, value, type: typeof(value), getResult: formData.get(key), getAllResult: JSON.stringify(formData.getAll(key)) }); data[key] = value; }); console.warn('Final result', { data });
 .as-console-wrapper { max-height: 100%;important; }

There is a way to capture the keys and values of the k3 without using jQuery or any external library?

Ok, so this isn't quite what you're after, but here goes. If you want to pass in an object for your k3 value, then you'll need to stringify it first. You'll then need to parse it back out to an object wherever you want to use it. I've updated your code above to stringify the value, and attempt to parse it back out in your debugging (just so that you can see it)

 const formData = new FormData(); formData.append('k1', 123); formData.append('k2', 'ABC'); formData.append('k3', JSON.stringify({ a: 1, b: '2' })); data = {}; formData.forEach((value, key) => { console.log(`Key: ${key}`, { key, value, type: typeof(value), rawResult: formData.get(key), potentialObjResult: (function(val){ let potential = undefined; try { potential = JSON.parse(val); } catch(ex){ console.log('could not parse: <' + val + '> as JSON'); } return potential; })(formData.get(key)) }); data[key] = value; }); console.warn('Final result', { data });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM