[RESOLVIDO] "Linkar" arquivo JSON dentro do Javascript

Pessoal, eu já consegui linkar o javascript pelo HTML, o problema tá pra linkar o JSON no .js.

Meu arquivo .js:
Eu queria colocar no lugar do “conteudo” o meu outro arquivo JSON, pra deixar o arquivo dinamico…

var conteudo = {
	"nomeV": "Abner Rodrigues",
	"blocoV": "A - 12",
	"rgV": "50.656.978-0",
	"veiculoV" : "Zafira",
	"placaV" : " - " + "AAA-1234",
	"empresaV": "Minha Empresa",
	"datahoraV": "20/08/2018 as 12:35"
	};
	
 	
	var nome = document.getElementById('nome');
	nome.innerHTML = conteudo.nomeV;
	
	var bloco = document.getElementById('bloco');
	bloco.innerHTML = conteudo.blocoV;
	
	var rg = document.getElementById('rg');
	rg.innerHTML = conteudo.rgV;
	
	var veiculo = document.getElementById('veiculo');
	veiculo.innerHTML = conteudo.veiculoV + conteudo.placaV;
	
	var empresa = document.getElementById('empresa');
	empresa.innerHTML = conteudo.empresaV;
	
	var datahora = document.getElementById('datahora');
	datahora.innerHTML = conteudo.datahoraV;

Dá uma olhada

1 curtida

Tentei um exemplo parecido, pronto até. Mas não me retorna nada. Como se a função não estivesse sendo chamada.

Fiz isso:

<!DOCTYPE html>
<html>
    <head>
        <title>Consumindo JSON com Ajax</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <button type="button" id="carregar">Carregar Dados</button>
        <button type="button" id="limpar">Limpar Dados</button>
        <hr />
        <div> Dados serão carregados abaixo </div>
        <hr />
        <div id="mostraDados"></div>
		
    </body>
    <script src="script.js"></script>
</html>

function loadPage() {
    this.addEvent();
}

function addEvent() {
    document.getElementById("carregar").addEventListener("click", mostraDados);
    document.getElementById("limpar").addEventListener("click", limpaDados);
}

function mostraDados() {
    var request, dados, container;
    limpaDados();

    container = getContainer();
    request = verificaRequest();
 
    request.onreadystatechange = function () {
        if (request.readyState === 4 && request.status === 200) {

            dados = JSON.parse(request.responseText);

            for (var i in dados) {
                container.innerHTML += '<br />';
                for (var propriedade in dados[i]) {
                    container.innerHTML += propriedade + ' = ';
                    if (typeof dados[i][propriedade] !== 'object') {
                        container.innerHTML += dados[i][propriedade] + '<br>';
                    } else {
                        for (var j in dados[i][propriedade]){
                            container.innerHTML += (j == 0 ) ? "":", ";
                            container.innerHTML += dados[i][propriedade][j];
                         }
                    }
                }
                container.innerHTML += '<hr />';
            }
        }
    };
    request.open("GET", "dados.json", true);
    request.send();
}

function limpaDados() {
     getContainer().innerHTML = "";
}

function verificaRequest() {
     return req = (window.XMLHttpRequest) ? new XMLHttpRequest() :
         new ActiveXObject('Microsoft.XMLHTTP');
}

function getContainer() {
     return document.getElementById("mostraDados");
window.onload = loadPage;
}

Com o exemplo da página que você mandou, acaba não retornando nada também. Já tentei com "===", já mudei o nome do arquivo, já coloquei o caminho absoluto, troquei de pasta… Nada, já joguei pra servidor também

Onde está a chamada para a função que você precisa disparar?

Na verdade meu HTML é esse aqui:

Meu index.html (Tá no final do html)

<!DOCTYPE html>
<html>
    <title>Consultsegur Serviços - Visitante</title>
    <link rel="shortcut icon" href="C:\Users\abner\Documents\Projetos\Imperium\Launch4J\iconep_X1N_icon.ico" />
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
    <link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Roboto'>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    <link rel="stylesheet" href="style.css" type="text/css"/>
    <link rel="stylesheet" href="style.css" type="text/css">



    <style>
        html,body,h1,h2,h3,h4,h5,h6 {font-family: "Roboto", sans-serif}
    </style>
    <body class="w3-light-grey">

        <div class="w3-content w3-margin-top" style="max-width:1400px;">

            <div class="w3-row-padding">

                <div class="w3-third">
                    <div class="w3-white w3-text-grey w3-card-4">
                        <div class="w3-display-container">
                            <img src="Abner.jpg" style="width:100%" alt="Avatar">
                            <div class="w3-display-bottomleft w3-container w3-text-black">
                                <h2> <div id= "nome"> Nome do Visitante</div> </h2>
                            </div>
                        </div>
                        <div class="w3-container">

                            <p><b>Bloco e Apto: </b><label id= "bloco"> Bloco</label></p>
                            <p><b>RG: </b><label id= "rg"> RG + Emissor</label></p>
                            <p><b>Veículo e Placa: </b><label id= "veiculo"> Veiculo + Placa</label></p>
                            <p><b>Empresa: </b><label id= "empresa"> Empresa</label></p>
                            <p><b>Data e Hora: </b><label id= "datahora"> Data + Hora</label></p>

                            <hr>
                        </div>
                        
                    </div><br>


                </div>

                <div class="w3-twothird">

                    <div class="w3-container w3-card w3-white w3-margin-bottom">
                        <h2 class="w3-text-grey w3-padding-16">Evite Confusões!</h2>
                        <div class="w3-container">
                            <h5 class="w3-opacity"><b>Veículos mal estacionados ou em locais proibidos</b></h5>
                            <h6 class="w3-text-teal"><i class="fa fa-calendar fa-fw w3-margin-right"></i><span class="w3-tag w3-teal w3-round">Veículo</span></h6>
                            <p>Não deixe o carro da sua visita atrapalhando a entrada e saída de veículos e oriente sua visita sobre o limite de velocidade do condomínio.</p>
                            <hr>
                        </div>
                        <div class="w3-container">
                            <h5 class="w3-opacity"><b>Trate os seus vizinhos com respeito</b></h5>
                            <h6 class="w3-text-teal"><i class="fa fa-calendar fa-fw w3-margin-right"></i><span class="w3-tag w3-teal w3-round">Respeito</span></h6>
                            <p>Consectetur adipisicing elit. Praesentium magnam consectetur vel in deserunt aspernatur est reprehenderit sunt hic. Nulla tempora soluta ea et odio, unde doloremque repellendus iure, iste.</p>
                            <hr>
                        </div>
                        <div class="w3-container">
                            <h5 class="w3-opacity"><b>Avise a portaria se ocorrer algum incidente</b></h5>
                            <h6 class="w3-text-teal"><i class="fa fa-calendar fa-fw w3-margin-right"></i><span class="w3-tag w3-teal w3-round">Prevenção</span></h6>
                            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. </p><br>
                        </div>
                    </div>
                </div>

            </div>

        </div>

        <footer class="w3-container w3-teal w3-center w3-margin-top">
            <p>Consultsegur Serviços.</p>
            <p>Gerado por <a href="https://www.consultsegur.com.br/" target="_blank">Consultsegur</a></p>
        </footer>
<script src = "script.js"></script> --Aqui em chamo o script
    </body>
</html>

Meu script.js

function loadJSON(callback) {   

    var xobj = new XMLHttpRequest();
        xobj.overrideMimeType("application/json");
    xobj.open('GET', 'dados.json', true); // Replace 'my_data' with the path to your file
    xobj.onreadystatechange = function () {
          if (xobj.readyState == 4 && xobj.status == "200") {
            // Required use of an anonymous callback as .open will NOT return a value but simply returns undefined in asynchronous mode
            callback(xobj.responseText);
          }
    };
    xobj.send(null);  
 }

Meu dados.json

{
“rgV”:“50.000.000-0”,
“veiculoV”:“Zafira”,
“dataV”:“20/08/2018”,
“blocoV”:“A”,
“aptoV”:“12”,
“placaV”:“DWK - 3818”,
“horaV”:“13:18h”,
“nomeV”:“Abner Rodrigues”,
“empresaV”:“Minha Empresa”
}

ERA A DESGRAÇA DO CHROMEEEEEEEEEEEEEEEEEEEEEEEEEE!!!

Pra qm precisar do código, só adaptar pra vc e vai q vai:

function readTextFile(file, callback) {
    var rawFile = new XMLHttpRequest();
    rawFile.overrideMimeType("application/json");
    rawFile.open("GET", file, true);
    rawFile.onreadystatechange = function() {
        if (rawFile.readyState === 4 && rawFile.status == "200") {
            callback(rawFile.responseText);
        }
    }
    rawFile.send(null);
}

//usage:
readTextFile("dados.json", function(text){
    var dados = JSON.parse(text);
	
	var nome = document.getElementById('nome');
	nome.innerHTML = dados.nomeV;
	
	var bloco = document.getElementById('bloco');
	bloco.innerHTML = dados.blocoV + " - " + dados.aptoV;
	
	var rg = document.getElementById('rg');
	rg.innerHTML = dados.rgV;
	
	var veiculo = document.getElementById('veiculo');
	veiculo.innerHTML = dados.veiculoV + dados.placaV;
	
	var empresa = document.getElementById('empresa');
	empresa.innerHTML = dados.empresaV;
	
	var datahora = document.getElementById('datahora');
	datahora.innerHTML = dados.datahoraV;
	
    console.log(dados);
});