如何将字符串转换为json并使用jquery更改其值?

时间:2018-08-22 18:14:16

标签: javascript jquery json

我有一个变量名状态,如何将其转换为JSON对象并更改其值,然后再将其转换回字符串。

注意:private void CheckForUserType() { var user = RetrieveSession(); } private object RetrieveSession() { var userInfo =(UserInfo)HttpContext.Current.Session["userInfo"]; return userInfo; } 值本身是另一个dataField,这就是我遇到问题的地方。

JSON

5 个答案:

答案 0 :(得分:2)

您可以使用JSON.parse()进行转换

var obj = JSON.parse(state);

然后您修改所需内容:

obj.dataField.name = "newName";

最后,您将字符串恢复为状态:

state = JSON.stringify(obj);

答案 1 :(得分:0)

JSON.parse()可用于将字符串转换为JSON

  

var obj = JSON.parse('{“名称”:“约翰”,“年龄”:30,“城市”:“纽约”}');

JSON.stringify()可用于将JSON转换回字符串

  

var myJSON = JSON.stringify(obj);

答案 2 :(得分:0)

您可以使用JSON函数中的内部版本。我还修复了您的JSON字符串。您可以用不需要的引号将"dataField"值引起来。应该是{"id":52, "name":"CropSelection"}而不是"{"id":52, "name":"CropSelection"}"

var state = '{"instanceId":"iaFMRu32kedGmOHC8umMQ","dataField":{"id":52, "name":"CropSelection"},"validation":"incomplete","required":true,"value":"","hasValue":false,"requiresSave":true}';

var obj = JSON.parse(state);

obj.dataField.name = 'newName';

console.log(JSON.stringify(obj));

答案 3 :(得分:0)

您可以执行JSON.parse将字符串转换为json,然后更新dataField的值,然后再次执行JSON.stringify

请注意,在字符串"dataField":"{"id":52,"name":"CropSelection"}"中,这是错误的,必须为"dataField":{"id":52,"name":"CropSelection"}

let newDT = {
  "id": 100,
  "name": "test"
}

let state = '{"instanceId":"iaFMRu32kedGmOHC8umMQ","dataField":{"id":52,"name":"CropSelection"},"validation":"incomplete","required":true,"value":"","hasValue":false,"requiresSave":true}';

let k = JSON.parse(state);
k.dataField = newDT
console.log(JSON.stringify(k))

答案 4 :(得分:0)

发布此答案,以防万一您不正确地发布json,并且dataField的值确实是包含json的嵌套字符串。如果是这样,您可以解析状态,然后解析dataField。更改已解析的数据字段,然后将其递增地转换回字符串。

var state = '{"instanceId":"iaFMRu32kedGmOHC8umMQ","dataField":"{\\"id\\":52,\\"name\\":\\"CropSelection\\"}","validation":"incomplete","required":true,"value":"","hasValue":false,"requiresSave":true}';

var parsedState = JSON.parse(state);
console.log( parsedState );
var parsedDataField = JSON.parse( parsedState.dataField );
console.log( JSON.parse( parsedState.dataField ) );

parsedDataField.name = "New Name";
parsedState.dataField = JSON.stringify( parsedDataField );
state = JSON.stringify( parsedState );
console.log( state );