如何在没有引号的情况下将值放入 JSONObject
How to put value in JSONObject without quotations
我正在开发一个使用 Alpajajs 表单的项目,在 java 上创建模式 JSON,现在我需要制作一个 json,它具有不带双引号的价值,例如:
"buttons": {
"submit": {
"click": function() {
this.refreshValidationState(true);
if (!this.isValid(true)) {
this.focus();
return;
}
this.ajaxSubmit();
}
}
}
这是我的代码:
JSONObject ob = new JSONObject();
JSONObject button = new JSONObject();
JSONObject submit = new JSONObject();
submit.put("click", "function() {"
+"this.refreshValidationState(true);"
+"if (!this.isValid(true)) {"
+" this.focus();"
+" return;"
+"}"
+"this.ajaxSubmit();"
+"}");
button.put("submit", submit);
ob.put("buttons", button);
但我明白了:
在调用 JSONString();
之后
"buttons": {
"submit": {
"click": "function() {this.refreshValidationState(true);if (!this.isValid(true)) { this.focus(); return;}this.ajaxSubmit();}"
}
click 的值在双引号中,但我需要它不带引号,如何使用 toJSONString() 方法从 JSONObject 中删除双引号。
任何想法。
谢谢。
我研究过它并查看了 JSONObject 的源代码,有了一个想法并解决了问题。
JSONObject 在 String 上添加引号,但在 Object 上没有,所以我做了一个 class,
public class Method implements java.io.Serializable{
/** use serialVersionUID for interoperability */
private static final long serialVersionUID = 1L;
String value;
public Method(String value) {
super();
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString(){
return this.value;
}
}
然后把 class 的对象变成这样:
JSONObject submit = new JSONObject();
JSONObject button = new JSONObject();
String value = "function() {"
+"this.refreshValidationState(true);"
+"if (!this.isValid(true)) {"
+" this.focus();"
+" return;"
+"}"
+"this.ajaxSubmit();"
+"}";
Method click =new Method(value);
submit.put("click", click);
button.put("submit", submit);
button.toJSONString();
现在问题已解决,代码运行正常,输出结果如我所愿。
"buttons": {
"submit": {
"click": function() {
this.refreshValidationState(true);
if (!this.isValid(true)) {
this.focus();
return;
}
this.ajaxSubmit();
}
}
}
我正在开发一个使用 Alpajajs 表单的项目,在 java 上创建模式 JSON,现在我需要制作一个 json,它具有不带双引号的价值,例如:
"buttons": {
"submit": {
"click": function() {
this.refreshValidationState(true);
if (!this.isValid(true)) {
this.focus();
return;
}
this.ajaxSubmit();
}
}
}
这是我的代码:
JSONObject ob = new JSONObject();
JSONObject button = new JSONObject();
JSONObject submit = new JSONObject();
submit.put("click", "function() {"
+"this.refreshValidationState(true);"
+"if (!this.isValid(true)) {"
+" this.focus();"
+" return;"
+"}"
+"this.ajaxSubmit();"
+"}");
button.put("submit", submit);
ob.put("buttons", button);
但我明白了: 在调用 JSONString();
之后"buttons": {
"submit": {
"click": "function() {this.refreshValidationState(true);if (!this.isValid(true)) { this.focus(); return;}this.ajaxSubmit();}"
}
click 的值在双引号中,但我需要它不带引号,如何使用 toJSONString() 方法从 JSONObject 中删除双引号。 任何想法。
谢谢。
我研究过它并查看了 JSONObject 的源代码,有了一个想法并解决了问题。
JSONObject 在 String 上添加引号,但在 Object 上没有,所以我做了一个 class,
public class Method implements java.io.Serializable{
/** use serialVersionUID for interoperability */
private static final long serialVersionUID = 1L;
String value;
public Method(String value) {
super();
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString(){
return this.value;
}
}
然后把 class 的对象变成这样:
JSONObject submit = new JSONObject();
JSONObject button = new JSONObject();
String value = "function() {"
+"this.refreshValidationState(true);"
+"if (!this.isValid(true)) {"
+" this.focus();"
+" return;"
+"}"
+"this.ajaxSubmit();"
+"}";
Method click =new Method(value);
submit.put("click", click);
button.put("submit", submit);
button.toJSONString();
现在问题已解决,代码运行正常,输出结果如我所愿。
"buttons": {
"submit": {
"click": function() {
this.refreshValidationState(true);
if (!this.isValid(true)) {
this.focus();
return;
}
this.ajaxSubmit();
}
}
}