Skip to content

Commit 0cb2525

Browse files
committed
JSON
1 parent 54c27fa commit 0cb2525

File tree

3 files changed

+240
-0
lines changed

3 files changed

+240
-0
lines changed

14. JSON/data.json

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
{
2+
"persons": [
3+
{
4+
"name": "Rahim",
5+
"age": 25,
6+
"hometown": "Dhaka",
7+
"married": false
8+
},
9+
{
10+
"name": "Karim",
11+
"age": 35,
12+
"hometown": "Chittagong",
13+
"married": true
14+
},
15+
{
16+
"name": "Ayon",
17+
"age": 27,
18+
"hometown": "Chandpur",
19+
"married": false
20+
},
21+
{
22+
"name": "Rahat",
23+
"age": 34,
24+
"hometown": "Chittagong",
25+
"married": true
26+
},
27+
{
28+
"name": "Rony",
29+
"age": 26,
30+
"hometown": "Chittagong",
31+
"married": false
32+
}
33+
],
34+
35+
"students": [
36+
{
37+
"name": "Abdullah",
38+
"age": 25,
39+
"hometown": "Dhaka",
40+
"married": false
41+
},
42+
{
43+
"name": "Al-Amin",
44+
"age": 35,
45+
"hometown": "Chittagong",
46+
"married": true
47+
},
48+
{
49+
"name": "Abdur Rahman",
50+
"age": 27,
51+
"hometown": "Chandpur",
52+
"married": false
53+
},
54+
{
55+
"name": "Obaydur Rahman",
56+
"age": 34,
57+
"hometown": "Chittagong",
58+
"married": true
59+
},
60+
{
61+
"name": "Abu Hanifa",
62+
"age": 26,
63+
"hometown": "Chittagong",
64+
"married": false
65+
}
66+
]
67+
}

14. JSON/index.html

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>Document</title>
7+
</head>
8+
<body>
9+
<h1 id="showMessage"></h1>
10+
<!-- link javacript file -->
11+
<script src="js/script.js"></script>
12+
13+
</body>
14+
</html>

14. JSON/js/script.js

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
// JSON(JavaScript Object Notation)
2+
// Data format for exchanging data between systems running on different technology
3+
/* এর মানে হচ্ছে আমাদের যখন দুইটি ভিন্ন সিস্টেম লাইক দুটি ওয়েবসাইট এর মধ্যে ডাটা এক্সচেঞ্জ করলে দুটিতে সাপোর্ট করে এরকম একটা ডাটা ফরমেট লাগে। আর সেটি হচ্ছে জেসন ডাটা ফরমেট। xml এর সাহায্যেও এটি করা যাই। তবে জেসন বেশি সহজ। পাইথন, পিএইচপি, জাভাস্ক্রিপ্ট, জাভাতে জেসন ব্যবহার করা যায়। */
4+
5+
// Has similarity with JavaScript Object
6+
// Properties are wrapped with " "
7+
// JavaScript Object:
8+
//{name: "Abdullah", age:22, hometown:"Dhaka"}
9+
// JSON Data:
10+
// {"name":"Abdullah", "age":22, "hometown":"Dhaka"}
11+
12+
13+
// JavaScript Object
14+
let students = {
15+
name : "Abdullah",
16+
age : 22,
17+
homeTow: "Dhaka"
18+
}
19+
20+
21+
// JSON Object
22+
let students_json = {
23+
"name": "Abdullah",
24+
"age": 22,
25+
"homeTown": "Dhaka"
26+
}
27+
28+
29+
console.log(students);
30+
console.log(students_json);
31+
32+
33+
// JavaScript Object to JSon Object JSON.stringify(js_ob)
34+
students_json = JSON.stringify(students);
35+
console.log(students_json);
36+
37+
38+
// JSON object to js Object JSON.parse(json_obj)
39+
students = JSON.parse(students_json);
40+
console.log(students);
41+
42+
//Json Validator https://jsonlint.com/
43+
44+
// Json Support DataTypes:
45+
//String
46+
// Numbers
47+
// Object(JSON Object)
48+
// array
49+
// boolean
50+
// null
51+
52+
// JSON Does not support Date, undefined, and function
53+
54+
55+
var person = {
56+
name: "Abdullah",
57+
age: 25,
58+
// dob: 1998-04-13,
59+
married: false,
60+
test: null,
61+
test_undefined: undefined,
62+
greet: function(){
63+
console.log(`Hello, ${person.name}`);
64+
}
65+
}
66+
67+
// if we convert it test_undefined, dob and greet function convert have some error
68+
let json_obj = JSON.stringify(person);
69+
console.log(json_obj);
70+
71+
72+
var person = {
73+
name: "Abdullah",
74+
age: 25,
75+
dob: "1998-04-13",
76+
married: false,
77+
test: null,
78+
test_undefined: undefined,
79+
arr: [1,32,34,23,4],
80+
pdetails: {
81+
parentName: "Abdur Rahman",
82+
age: 60,
83+
homeTown: "Cox's Bazar"
84+
}
85+
}
86+
87+
88+
json_obj = JSON.stringify(person);
89+
console.log(json_obj);
90+
91+
92+
// If we want to write json object in javascript, javascript treat it as js object
93+
person = {
94+
name: "Abdullah",
95+
age: 25,
96+
dob: "1998-04-13",
97+
married: false,
98+
test: null,
99+
arr: [1,32,34,23,4],
100+
pdetails: {
101+
parentName: "Abdur Rahman",
102+
age: 60,
103+
homeTown: "Cox's Bazar"
104+
}
105+
}
106+
107+
let person1 = {
108+
"name": "Abdullah",
109+
"age": 25,
110+
"dob": "1998-04-13",
111+
"married": false,
112+
"test": null,
113+
"arr": [1,32,34,23,4],
114+
"pdetails": {
115+
parentName: "Abdur Rahman",
116+
age: 60,
117+
homeTown: "Cox's Bazar"
118+
}
119+
}
120+
console.log(person);
121+
console.log(person1);
122+
123+
// person1 = JSON.parse(person1); // show error because of js treat it as js object
124+
//If convert Javascript write JSON to JSON object we can first convert it to JSON object then javascript object
125+
person1 = JSON.stringify(person1);
126+
person1 = JSON.parse(person1);
127+
console.log(person1);
128+
129+
130+
//Code for fetch json data from server or external file
131+
var xmlhttp = new XMLHttpRequest();
132+
xmlhttp.onreadystatechange = function () {
133+
if (this.readyState == 4 && this.status == 200) {
134+
var data = this.responseText;
135+
jsonData(data);
136+
}
137+
};
138+
139+
xmlhttp.open("GET", "data.json", true);
140+
xmlhttp.send();
141+
142+
function jsonData(data) {
143+
144+
let jsObjets = JSON.parse(data);
145+
146+
147+
148+
for (json_obj in jsObjets){
149+
let arr = jsObjets[`${json_obj}`];
150+
151+
for(eacindex in arr){
152+
eachOb = arr[eacindex];
153+
for(valueindex in eachOb){
154+
console.log(eachOb[`${valueindex}`]);
155+
}
156+
}
157+
}
158+
159+
}

0 commit comments

Comments
 (0)