0

I have a JSON file with data and I am trying to decode it using typescript/javascript and below is my JSON format:

{
"topics":{
    
    "default":{
        "tables":[
            {"tbl_id": 1, "tbl_name": "people", "tbl_description": "Desc for people", "icon": "\uf509", "color":"#348888", "variables": [{"tbl_id": 1, "var_id": 2, "IDS_column_name":"Column name here", "var_name": "Variable name here", "data_type": "integer", "meaning": "Variable meaning here", "date_introduced": "12/10/23", "range": "1 to 5", "old_var_name": "Old variable name here", "reference":"reference here", "derived": "yes", "synonyms": [{"syn_id": 1, "synonym": "People synonym"}], "input_values": [{"val_id": 1, "value": "Foo"}], "timeline_of_change":[{"change_id": 1, "change_date": "12/12/30", "comment": "Comment here"}], "dependencies": [{"depend_on": 1}]}], "pos": {"x": 1, "y": 2} },
            {"tbl_id": 2, "tbl_name": "encounters", "tbl_description": "Desc for encounters", "icon": "\uf509", "color":"#346888", "variables": [{"tbl_id": 1, "var_id": 2, "IDS_column_name":"Column name here", "var_name": "Variable name here", "data_type": "integer", "meaning": "Variable meaning here", "date_introduced": "12/10/23", "range": "1 to 5", "old_var_name": "Old variable name here", "reference":"reference here", "derived": "yes", "synonyms": [{"syn_id": 1, "synonym": "People synonym"}], "input_values": [{"val_id": 1, "value": "Foo"}], "timeline_of_change":[{"change_id": 1, "change_date": "12/12/30", "comment": "Comment here"}], "dependencies": [{"depend_on": 1}]}], "pos": {"x": 2, "y": 4} },
            {"tbl_id": 3, "tbl_name": "medical_prescriptions", "tbl_description": "Desc for medical_prescriptions", "icon": "\uf509", "color":"#346888", "variables": [{"tbl_id": 1, "var_id": 2, "IDS_column_name":"Column name here", "var_name": "Variable name here", "data_type": "integer", "meaning": "Variable meaning here", "date_introduced": "12/10/23", "range": "1 to 5", "old_var_name": "Old variable name here", "reference":"reference here", "derived": "yes", "synonyms": [{"syn_id": 1, "synonym": "People synonym"}], "input_values": [{"val_id": 1, "value": "Foo"}], "timeline_of_change":[{"change_id": 1, "change_date": "12/12/30", "comment": "Comment here"}], "dependencies": [{"depend_on": 1}]}], "pos": {"x": 4, "y": 6} },
            {"tbl_id": 4, "tbl_name": "lab_orders", "tbl_description": "Desc for lab_orders", "icon": "\uf509", "color":"#346888", "variables": [{"tbl_id": 1, "var_id": 2, "IDS_column_name":"Column name here", "var_name": "Variable name here", "data_type": "integer", "meaning": "Variable meaning here", "date_introduced": "12/10/23", "range": "1 to 5", "old_var_name": "Old variable name here", "reference":"reference here", "derived": "yes", "synonyms": [{"syn_id": 1, "synonym": "People synonym"}], "input_values": [{"val_id": 1, "value": "Foo"}], "timeline_of_change":[{"change_id": 1, "change_date": "12/12/30", "comment": "Comment here"}], "dependencies": [{"depend_on": 1}]}], "pos": {"x": 4, "y": 6} },
            {"tbl_id": 5, "tbl_name": "lab_test_results", "tbl_description": "Desc for lab_test_results", "icon": "\uf509", "color":"#346888", "variables": [{"tbl_id": 1, "var_id": 2, "IDS_column_name":"Column name here", "var_name": "Variable name here", "data_type": "integer", "meaning": "Variable meaning here", "date_introduced": "12/10/23", "range": "1 to 5", "old_var_name": "Old variable name here", "reference":"reference here", "derived": "yes", "synonyms": [{"syn_id": 1, "synonym": "People synonym"}], "input_values": [{"val_id": 1, "value": "Foo"}], "timeline_of_change":[{"change_id": 1, "change_date": "12/12/30", "comment": "Comment here"}], "dependencies": [{"depend_on": 1}]}], "pos": {"x": 6, "y": 8}
        }
        ],
        "edges": {
            "people": {
                "encounters":{}
            },
            "encounters": {
                "medical_prescriptions":{},
                "lab_orders": {}
            },
            "lab_orders":{
                "lab_test_results": {}
            }
        }
    }
,

    "demographics":{
        "tables":[
            {"tbl_id": 1, "tbl_name": "people", "tbl_description": "Desc for people", "icon": "\uf509", "color":"#348888", "variables": [{"tbl_id": 1, "var_id": 2, "IDS_column_name":"Column name here", "var_name": "Variable name here", "data_type": "integer", "meaning": "Variable meaning here", "date_introduced": "12/10/23", "range": "1 to 5", "old_var_name": "Old variable name here", "reference":"reference here", "derived": "yes", "synonyms": [{"syn_id": 1, "synonym": "People synonym"}], "input_values": [{"val_id": 1, "value": "Foo"}], "timeline_of_change":[{"change_id": 1, "change_date": "12/12/30", "comment": "Comment here"}], "dependencies": [{"depend_on": 1}]}], "pos": {"x": 1, "y": 2} },
            {"tbl_id": 2, "tbl_name": "encounters", "tbl_description": "Desc for encounters", "icon": "\uf509", "color":"#346888", "variables": [{"tbl_id": 1, "var_id": 2, "IDS_column_name":"Column name here", "var_name": "Variable name here", "data_type": "integer", "meaning": "Variable meaning here", "date_introduced": "12/10/23", "range": "1 to 5", "old_var_name": "Old variable name here", "reference":"reference here", "derived": "yes", "synonyms": [{"syn_id": 1, "synonym": "People synonym"}], "input_values": [{"val_id": 1, "value": "Foo"}], "timeline_of_change":[{"change_id": 1, "change_date": "12/12/30", "comment": "Comment here"}], "dependencies": [{"depend_on": 1}]}], "pos": {"x": 2, "y": 4} },
            {"tbl_id": 3, "tbl_name": "medical_prescriptions", "tbl_description": "Desc for medical_prescriptions", "icon": "\uf509", "color":"#346888", "variables": [{"tbl_id": 1, "var_id": 2, "IDS_column_name":"Column name here", "var_name": "Variable name here", "data_type": "integer", "meaning": "Variable meaning here", "date_introduced": "12/10/23", "range": "1 to 5", "old_var_name": "Old variable name here", "reference":"reference here", "derived": "yes", "synonyms": [{"syn_id": 1, "synonym": "People synonym"}], "input_values": [{"val_id": 1, "value": "Foo"}], "timeline_of_change":[{"change_id": 1, "change_date": "12/12/30", "comment": "Comment here"}], "dependencies": [{"depend_on": 1}]}], "pos": {"x": 4, "y": 6} },
            {"tbl_id": 4, "tbl_name": "lab_orders", "tbl_description": "Desc for lab_orders", "icon": "\uf509", "color":"#346888", "variables": [{"tbl_id": 1, "var_id": 2, "IDS_column_name":"Column name here", "var_name": "Variable name here", "data_type": "integer", "meaning": "Variable meaning here", "date_introduced": "12/10/23", "range": "1 to 5", "old_var_name": "Old variable name here", "reference":"reference here", "derived": "yes", "synonyms": [{"syn_id": 1, "synonym": "People synonym"}], "input_values": [{"val_id": 1, "value": "Foo"}], "timeline_of_change":[{"change_id": 1, "change_date": "12/12/30", "comment": "Comment here"}], "dependencies": [{"depend_on": 1}]}], "pos": {"x": 4, "y": 6} },
            {"tbl_id": 5, "tbl_name": "lab_test_results", "tbl_description": "Desc for lab_test_results", "icon": "\uf509", "color":"#346888", "variables": [{"tbl_id": 1, "var_id": 2, "IDS_column_name":"Column name here", "var_name": "Variable name here", "data_type": "integer", "meaning": "Variable meaning here", "date_introduced": "12/10/23", "range": "1 to 5", "old_var_name": "Old variable name here", "reference":"reference here", "derived": "yes", "synonyms": [{"syn_id": 1, "synonym": "People synonym"}], "input_values": [{"val_id": 1, "value": "Foo"}], "timeline_of_change":[{"change_id": 1, "change_date": "12/12/30", "comment": "Comment here"}], "dependencies": [{"depend_on": 1}]}], "pos": {"x": 6, "y": 8}
        }
        ],
        "edges": {
            "people": {
                "encounters":{}
            },
            "encounters": {
                "medical_prescriptions":{},
                "lab_orders": {}
            },
            "lab_orders":{
                "lab_test_results": {}
            }
        }
    }

} }

I am trying to go into the topics then tables and so fourth. But before we get to tables from topics we have default and demographics as keys. I tried running a for loop but I am getting an error saying Cannot read properties of undefined (reading 'topics'). Below is how I am getting the data from the JSON file itself:

    getBranches() {
    return fetch('../dummyData/branchesData.json').then(res => res.json()).then(d => d.topics);
}

As you can see above I am getting the data starting from the topics. Below I am receiving the data in my Vue file and trying to iterate over it:

<script lang="ts">
import { defineComponent, onMounted, ref } from "vue";
import branchesData from "@/composables/testData";

export default defineComponent({
name: "GraphView",
components: {
 
},
setup() {
  const canvasRef = ref()
onMounted(() => {

  branchesService.value.getBranches().then(topics => {
    branches.value = topics;
    //console.log(branches.value);
  });
  
})

const branches = ref();
const branchesService = ref(new branchesData());
console.log(branches.value["topics"]);

for (const branch in branches) {
  //Am trying to iterate the JSON here and get the tables and so on
  
}



return { branches  }
},
});
</script>

I can log all the data in the onmounted when I log branches.value and below is what I am getting.

enter image description here

The above picture I can get my data under Proxy then Target. What can I do to get those values from my JSOn file?

codeninja
  • 315
  • 2
  • 10
  • Sounds like your issue may be due to incorrectly importing/fetching the JSON in the first place. Have a look at this and see if it helps https://stackoverflow.com/questions/50007055/fetch-request-to-local-file-not-working – Stitt Feb 09 '23 at 11:54
  • @Stitt I can console.log the data in the onmounted I can see all the data when I log `branches.value` without a problem. But the problem is why cant I loop though it. When logging the data I am getting a Proxy then Target and when I expand those thats when I can see all my data. – codeninja Feb 09 '23 at 12:05

0 Answers0