Hola Estoy intentando acceder a un archivo JSON para mi proyecto nativescrpt. probé esto
let fs = require("tns-core-modules/file-system");
let documents = fs.knownFolders.currentApp();
function GetJsonData(callback) {
let filePath = documents.getFile("./shared/message.json");
let array;
let jsonData;
jsonFile.readText().then(function (content) {
try {
jsonData = JSON.parse(content);
array = new observableArrayModule.ObservableArray(jsonData);
} catch (err) {
throw new Error('Could not parse JSON file');
}
}, function (error) {
throw new Error('Could not read JSON file');
});
function showJsonData() {
GetJsonData((array) => {
console.log(array);
});
}
Pero no se pudo obtener datos del archivo JSON
3 respuestas
Primero debe verificar que el archivo esté incluido en su archivo webpack.config.js en su proyecto. Como dijo @dashman.
Encuentra esto en tu paquete web
new CopyWebpackPlugin([
{ from: { glob: "fonts/**" } },
{ from: { glob: "**/*.jpg" } },
{ from: { glob: "**/*.png" } },
], { ignore: [`${relative(appPath, appResourcesFullPath)}/**`] }),
Y cambiar a gustar esto
new CopyWebpackPlugin([
{ from: { glob: "fonts/**" } },
{ from: { glob: "**/*.jpg" } },
{ from: { glob: "**/shared/*.json" } },
{ from: { glob: "**/*.png" } },
], { ignore: [`${relative(appPath, appResourcesFullPath)}/**`] }),
Después de eso, su código también tiene muchos errores. Cambia así
let fs = require("tns-core-modules/file-system");
let documents = fs.knownFolders.currentApp();
function GetJsonData(callback) {
let jsonFile = documents.getFile("./shared/message.json");
jsonFile.readText().then(function (content) {
try {
var jsonData = JSON.parse(content);
callback(jsonData);
} catch (err) {
callback(err);
throw new Error('Could not parse JSON file');
}
}, function (error) {
callback(error);
throw new Error('Could not read JSON file');
});
}
function showJsonData() {
GetJsonData((array) => {
console.log(array);
});
}
Primero debe buscar la carpeta, y debe hacerlo utilizando el punto de inicio knownFolders
.
import { knownFolders } from 'tns-core-modules/file-system';
knownFolders.currentApp().getFolder('shared').getFile('message.json').readText ...;
Si este archivo está en su proyecto fuente, debe asegurarse de que el paquete web lo guarde.
En su archivo webpack.config.js
new CopyWebpackPlugin([
{ from: { glob: "**/*.jpg" } },
{ from: { glob: "**/shared/*.json" } },
{ from: { glob: "**/*.png" } }
Preguntas relacionadas
Nuevas preguntas
nativescript
NativeScript es un marco de código abierto creado por Telerik que facilita el desarrollo de aplicaciones móviles nativas para los desarrolladores web. Permite a los desarrolladores usar JavaScript o TypeScript (con o sin Angular o Vue) para crear aplicaciones móviles nativas para iOS y Android. Las aplicaciones NativeScript representan componentes nativos de la interfaz de usuario diseñados por un subconjunto de CSS. Los módulos proporcionan abstracciones API nativas multiplataforma. El 100% de las API nativas están disponibles a través de JavaScript.