How to create JSON object using jQuery

I have a JSON object in below format:

temp:[
{
test:'test 1',
testData:  [
{testName: 'do',testId:''}
],
testRcd:'value'
},
{
test:'test 2',
testData:  [
{testName: 'do1',testId:''}
],
testRcd:'value'
}
],

How can i create JSON object in jquery for above format. I want to create a dynamic JSON object.

282490 次浏览

A "JSON object" doesn't make sense : JSON is an exchange format based on the structure of Javascript object declaration.

If you want to convert your javascript object to a json string, use JSON.stringify(yourObject);

If you want to create a javascript object, simply do it like this :

var yourObject = {
test:'test 1',
testData: [
{testName: 'do',testId:''}
],
testRcd:'value'
};

Just put your data into an Object like this:

var myObject = new Object();
myObject.name = "John";
myObject.age = 12;
myObject.pets = ["cat", "dog"];

Afterwards stringify it via:

var myString = JSON.stringify(myObject);

You don't need jQuery for this. It's pure JS.

I believe he is asking to write the new json to a directory. You will need some Javascript and PHP. So, to piggy back off the other answers:

script.js

var yourObject = {
test:'test 1',
testData: [
{testName: 'do',testId:''}
],
testRcd:'value'
};
var myString = 'newData='+JSON.stringify(yourObject);  //converts json to string and prepends the POST variable name
$.ajax({
type: "POST",
url: "buildJson.php", //the name and location of your php file
data: myString,      //add the converted json string to a document.
success: function() {alert('sucess');} //just to make sure it got to this point.
});
return false;  //prevents the page from reloading. this helps if you want to bind this whole process to a click event.

buildJson.php

<?php
$file = "data.json";  //name and location of json file. if the file doesn't exist, it   will be created with this name


$fh = fopen($file, 'a');  //'a' will append the data to the end of the file. there are other arguemnts for fopen that might help you a little more. google 'fopen php'.


$new_data = $_POST["newData"]; //put POST data from ajax request in a variable


fwrite($fh, $new_data);  //write the data with fwrite


fclose($fh);  //close the dile
?>
var model = {"Id": "xx", "Name":"Ravi"};
$.ajax({    url: 'test/set',
type: "POST",
data: model,
success: function (res) {
if (res != null) {
alert("done.");
}
},
error: function (res) {


}
});

Nested JSON object

var data = {
view:{
type: 'success', note:'Updated successfully',
},
};

You can parse this data.view.type and data.view.note

JSON Object and inside Array

var data = {
view: [
{type: 'success', note:'updated successfully'}
],
};

You can parse this data.view[0].type and data.view[0].note

How to get append input field value as json like

temp:[
{
test:'test 1',
testData:  [
{testName: 'do',testId:''}
],
testRcd:'value'
},
{
test:'test 2',
testData:  [
{testName: 'do1',testId:''}
],
testRcd:'value'
}
],