Próbuję przekonwertować ciąg XML, który otrzymuję z serwera na JSON w mojej funkcji Lambda.
Ustawiłem ten raczej prosty przykład symulacji odpowiedzi XML, którą otrzymuję z serwera za pomocą DynamoDB. (Obecnie jestem po prostu staramy się uzyskać konwersja dzieje)Parsowanie XML do JSON w Amazon Lambda przy użyciu zewnętrznych bibliotek js
'use strict';
var AWS = require('aws-sdk');
var docClient = new AWS.DynamoDB.DocumentClient({region: 'eu-west-1'});
exports.handler = function (e, ctx, callback){
let table = "dsbTable";
let bpNumber = 1337;
var test;
var x2js = new X2JS();
let params = {
TableName: table,
Key:{
"bpNumber": bpNumber
},
};
docClient.get(params, function(err, data) {
if (err) {
console.error("Unable to read item. Error JSON:", JSON.stringify(err, null, 2));
callback(err, null);
} else {
console.log("GetItem succeeded:", JSON.stringify(data, null, 2));
console.log('test' +data.Item.getBp);
//var jsonObj = x2js.xml_str2json(data.Item.getBp);
//console.log(jsonObj);
callback(null, data);
}
});
} ;
otrzymania towaru działa dobrze i jest zwrócony jak to
{
"Item": {
"getBp": "<message version=\"1.0\" system=\"AVS/3\"><header><client>553</client><avs3-sales-organization>7564</avs3-sales-organization><avs3-service-provider>DSD</avs3-service-provider></header><body><business-partner><salutation-code>01</salutation-code><titel-code-academic/><titel-academic/><titel-code-royal/><titel-royal/><job-titel/><last-name1>Pickle</last-name1><last-name2/><first-name>N</first-name><street/><street-suffix/><street-number/><street-number-suffix/><address-line-1>10 Waterside Way</address-line-1><address-line-2/><address-line-3/><zipcode>NN4 7XD</zipcode><country-code>GB</country-code><city>NORTHAMPTON</city><district/><region-code>NH</region-code><region-text>Northamptonshire</region-text><company1/><company2/><company3/><department/><po-box/><po-box-zipcode/><po-box-city/><po-box-country-code/><major-customer-zipcode/><address-source/><advertisement>Y</advertisement><category/><bp-number>1100000772</bp-number><bp-number-external/><bp-group>ABON</bp-group><eu-sales-tax-number/><bic-master-number/><sector/><communication><communication-type>WW</communication-type><communication-value>[email protected]</communication-value><communication-default>Y</communication-default></communication><attribute><attribute-type>ACC</attribute-type><attribute-value>Y</attribute-value></attribute><attribute><attribute-type>OIEMEX</attribute-type><attribute-value>N20121211</attribute-value></attribute><attribute><attribute-type>OINLIN</attribute-type><attribute-value>N20121211</attribute-value></attribute><attribute><attribute-type>OISMEX</attribute-type><attribute-value>N20121211</attribute-value></attribute><attribute><attribute-type>OISMIN</attribute-type><attribute-value>N20121211</attribute-value></attribute><attribute><attribute-type>OOEMIN</attribute-type><attribute-value>N20121211</attribute-value></attribute><attribute><attribute-type>OOFXEX</attribute-type><attribute-value>N20121211</attribute-value></attribute><attribute><attribute-type>OOFXIN</attribute-type><attribute-value>N20121211</attribute-value></attribute><attribute><attribute-type>OOPTEX</attribute-type><attribute-value>N20121211</attribute-value></attribute><attribute><attribute-type>OOPTIN</attribute-type><attribute-value>N20121211</attribute-value></attribute><attribute><attribute-type>OOTEEX</attribute-type><attribute-value>N20121211</attribute-value></attribute><attribute><attribute-type>OOTEIN</attribute-type><attribute-value>N20121211</attribute-value></attribute><attribute><attribute-type>THEDSU</attribute-type><attribute-value/></attribute></business-partner></body></message>",
"bpNumber": 1337
}
}
Moim głównym problemem jest to, że teraz nie mogę dowiedzieć się, jak mogę importować wszystkie pliki biblioteki XMLtoJSON, takie jak this one here
Mam nadzieję, że mój kod w tym przypadku nie jest całkowicie bezwartościowy i istnieje dość proste rozwiązanie.
'var jsonObj = x2js.xml_str2json (data.Item.getBp)' nie działa? Myślę, że po prostu nie odwołujesz się do plików JS. –
Przede wszystkim dziękuję za poświęcony czas. tak, to jest prawdopodobnie powód. ale nie mogę wymyślić, jak odniesienie to w mojej funkcji lambda. Jestem bardzo nowy w całej sprawie AWS. i javascript w tej sprawie ... Prawdopodobnie będę musiał wypróbować coś takiego dla Lambdy, aby móc uzyskać dostęp do zewnętrznych bibliotek http://docs.aws.amazon.com/de_de/lambda/latest/dg/nodejs- create-deployment-pkg.html. Próbowałem po prostu wklejając kod z bibliotek xml2json w mojej funkcji Lambda, ale to po prostu tony błędów: -/ –
Sprawdź ten link: http://stackoverflow.com/questions/950087/how-to-include-a -javascript-file-in-another-javascript-file –