简体   繁体   English

使用JavaScript将多个JSON对象添加或推送到API JSON数组

[英]Add or Push multiple JSON objects to an API JSON array using javascript

I have a CSV file full of data that has been converted into JSON. 我有一个CSV文件,其中包含已转换为JSON的数据。 Right now I'm trying to figure out how I can send multiple JSON objects into the API JSON array. 现在,我正在尝试弄清楚如何将多个JSON对象发送到API JSON数组。 I'm currently using ractive as my chocie of framework. 我目前正在使用ractive作为我的框架选择。 The JSON objects will be added by clicking on the "Send JSON Data" button 通过单击“发送JSON数据”按钮来添加JSON对象。

在此处输入图片说明

CSV to JSON Conversion CSV到JSON的转换

<html>

<body>

<?php 

    function csvToJson($fname) {
        if (!($fp = fopen($fname, 'r') )) {
            die("Can't open file");
        }

        $key = fgetcsv($fp, "1024", ",");

        $json = array();
            while ($row = fgetcsv($fp, "1024", ",")) {
                $json[] = array_combine($key, $row);
        }

        fclose($fp);

        foreach ( $json as $k=>$v ) {


            $json[$k]['dateRequested']     = $json[$k]['DATE']; 
            $json[$k]['assignedAgent']     = $json[$k]['AGENT'];
            $json[$k]['finalCompanyName']  = $json[$k]['COMPANY NAME'];
            $json[$k]['unitNumber']        = $json[$k]['UNIT'];
            $json[$k]['floorNumber']       = $json[$k]['FLOOR_LEVEL'];
            $json[$k]['buildingName']      = $json[$k]['BUILDING NAME'];
            $json[$k]['streetNumber']      = $json[$k]['NUMBER'];
            $json[$k]['streetName']        = $json[$k]['STREET'];
            $json[$k]['subdivisionName']   = $json[$k]['SUBDIVISION_COMPOUND_VILLAGE'];
            $json[$k]['barangayName']      = $json[$k]['BARANGAY'];
            $json[$k]['districtNum']       = $json[$k]['DISTRICT'];
            $json[$k]['cityMunicipality']  = $json[$k]['CITY_MUNICIPALITY'];
            $json[$k]['provinceName']      = $json[$k]['PROVINCE'];
            $json[$k]['region']            = $json[$k]['REGION'];
            $json[$k]['area']              = $json[$k]['AREA'];
            $json[$k]['longitude']         = $json[$k]['LONGITUDE'];
            $json[$k]['latitude']          = $json[$k]['LATITUDE'];
            $json[$k]['secRanking']        = $json[$k]['Sec Ranking'];
            $json[$k]['affiliate']         = $json[$k]['Affiliates'];
            $json[$k]['profiling']         = $json[$k]['Profiling'];
            $json[$k]['contactNumber']     = $json[$k]['CONTACT NUMBER'];
            $json[$k]['industry']          = $json[$k]['INDUSTRY']; 
            $json[$k]['amAssigned']        = $json[$k]['AM ASSIGNED'];
            $json[$k]['source']            = $json[$k]['SOURCE'];
            $json[$k]['gbu']               = $json[$k]['GBU'];
            $json[$k]['retention']         = $json[$k]['RETENTION'];
            $json[$k]['sec']               = $json[$k]['SEC'];
            $json[$k]['tier']              = $json[$k]['TIER'];
            $json[$k]['acqui']             = $json[$k]['ACQUI'];
            $json[$k]['finalReco']         = $json[$k]['FINAL RECO'];
            $json[$k]['remarksFindings']   = $json[$k]['FINAL REMARKS'];

            unset($json[$k]['DATE']);
            unset($json[$k]['AGENT']);
            unset($json[$k]['COMPANY NAME']);
            unset($json[$k]['UNIT']);
            unset($json[$k]['FLOOR_LEVEL']);
            unset($json[$k]['BUILDING NAME']);
            unset($json[$k]['NUMBER']);
            unset($json[$k]['STREET']);
            unset($json[$k]['SUBDIVISION_COMPOUND_VILLAGE']);
            unset($json[$k]['BARANGAY']);
            unset($json[$k]['DISTRICT']);
            unset($json[$k]['CITY_MUNICIPALITY']);
            unset($json[$k]['PROVINCE']);
            unset($json[$k]['REGION']);
            unset($json[$k]['AREA']);
            unset($json[$k]['LONGITUDE']);
            unset($json[$k]['LATITUDE']);
            unset($json[$k]['Sec Ranking']);
            unset($json[$k]['Affiliates']);
            unset($json[$k]['Profiling']);
            unset($json[$k]['CONTACT NUMBER']);
            unset($json[$k]['INDUSTRY']);
            unset($json[$k]['AM ASSIGNED']);
            unset($json[$k]['SOURCE']);
            unset($json[$k]['GBU']);
            unset($json[$k]['RETENTION']);
            unset($json[$k]['SEC']);
            unset($json[$k]['TIER']);
            unset($json[$k]['ACQUI']);
            unset($json[$k]['FINAL RECO']);
            unset($json[$k]['FINAL REMARKS']);

        }

        return json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);

    }

 ?>



<?php
$json_data = csvToJson("lms.csv");
?>

Javascript Java脚本

<div id="container">

</div>


<script src="https://cdnjs.cloudflare.com/ajax/libs/ractive/0.9.0-build-48/ractive.js"></script>


<script id="template" type="text/ractive">
     <a class="button cta" on-click="addData">Send JSON Data</a>
</script>

<script type="text/javascript">

var app = new Ractive({
    el       : '#container',
    template : '#template',
});

var proxy       = 'http://192.168.1.126/lms-dev-noel/proxy.php';
var endpoint    = 'account/leads/';
var rt          = 'POST';
var url         = proxy+'?endpoint='+endpoint+'&rt='+rt;

var lms_json    = <?php echo json_encode($json_data); ?>;

var jobjects = JSON.parse(lms_json);
console.log(jobjects)




app.on('addData', function(event) {
    $.ajax({
        type     : 'POST',
        url      : url,
        data     : jobjects,
        dataType : 'json',
        success  : function() {
            console.log(jobjects);
        },
        error    : function(error) {
            console.log('Error')
        }

    })

})


</script>

</body>

</html>

JSON is just a notation, it doesn't change anything. JSON只是一种表示法,它不会改变任何东西。 You should be able to just push objects/values on your desired key like usual after having parsed the JSON string. 解析JSON字符串后,您应该能够像往常一样将对象/值推送到所需的键上。

array[key].push(object);

for example: 例如:

jobjects['myKey1']['myKey2'].push({"key1":"value1", "key2":"value2"});

ref: Adding a new array element to a JSON object 参考: 向JSON对象添加新的数组元素

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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