टेबल से जेसन बनाओ

मैं टेबल से विशिष्ट जेसन बनाना चाहता हूं। मेरे पास एक टेबल है, जिसमें पंक्तियां और 4 कॉलम हैं। यहां मेरी तालिका है, मैं तालिका से एक jsonarray बनाना चाहता हूं। बाएं कॉलम में पहला मान जेसन की कुंजी है और दाएं कॉलम में अंतिम मान एक मूल्यवान जेसन है।

मेरा मतलब है कि मैं टेबल जेसनार्रे से प्राप्त करना चाहता हूं, इसे देखना चाहिए

json_from_form = [{color: 'id', 
          name: "mouse",
          x: "table",
          y: "book"}];

मैंने जेसन बनाने की कोशिश की है, लेकिन संरचना के साथ समस्या है और जेसन ऑब्जेक्ट में एक कुंजी सेट कर रहा है। कृपया जेसन ऑब्जेक्ट की सही संरचना को बल्ब करने में मेरी सहायता करें।

var json_from_form_tmp = {};
$('#table').find('tbody tr').each(function (i) {
    //var name = $(this).find('td:first').text(); 
    json_from_form_tmp[i] = {
        imd: $(this).find('td:eq(3) input').val()
    };
});
console.log(json_from_form_tmp);

यहां मेरा डेमो है

0
इस लिंक को jsfiddle.net/dGPks देखें
जोड़ा लेखक Nitin Varpe, स्रोत

2 उत्तर

इसके लिए आपको jQuery मानचित्र-फ़ंक्शन का उपयोग करना चाहिए, यहां एक उदाहरण दिया गया है:

$(function() {    
    var m = $("table tr").map(function (index, e) {        
        return {
            color: $(e).children().eq(0).text(),
            name: $(e).children().eq(1).text()
        }
    }).get();
});

जहां मैप फ़ंक्शन के अंदर परिभाषित वस्तुओं की एक सरणी होगी।

0
जोड़ा

ऑब्जेक्ट (json_from_form_tmp) की प्रॉपर्टी सेट करने के लिए, ['propertyName'] नोटेशन का उपयोग करें।

//get the name of the property from the first column     
var name = $(this).find('td:first').text();

//use that name as the name of the property. Your value fetch was right!
json_from_form_tmp[name] = $(this).find('td:eq(3) input').val(); 

यहां एक छोटे बदलाव के साथ आपका बेवकूफ है।

http://jsfiddle.net/bMzq8/32/

0
जोड़ा
धन्यवाद!! यह एक अच्छा विचार है! यह काम कर रहा है =)
जोड़ा लेखक toshkaexe, स्रोत