public class Test {
public static void main(String[] args) throws ClientProtocolException, IOException {
HttpClient client = new DefaultHttpClient();
JSONObject json = new JSONObject();
json.put('set_boot' : True);
json.put('synchronous': True),
json.put('filters',filterList);
List filterList = new ArrayList();
filterList.put(6005076802818994A0000000000009DD);
json.put('volumes':volumeList);
List volumeList = new ArrayList();
volumeList.add('*all');
json.add( 'allow_unsupported': True);
StringEntity se = new StringEntity( json.toString());
System.out.println(se);
}
}
我正在尝试添加值以转换为JSON查询,如:
{
'set_boot': True,
'synchronous': True,
'filters': {
'host_refs': [u '6005076802818994A0000000000009DD']
},
'volumes': ['*all'],
'allow_unsupported': True
}
但是Eclipse给了我错误的无效字符常量 在线
json.put('set_boot' : True);
我尝试过写一些其他的话,比如
json.put('set' : True);
但它仍然给我同样的错误。
答案 0 :(得分:3)
如果这是Java,您需要:
json.put("set_boot", true);
json.put("synchronous", true);
(稍后会出现类似的问题。)
注意:
true
,而不是True
。如果需要,可以使用"True"
设置字符串值filterList
put
上致电List
,当该方法不存在时......您的意思是add
6005076802818994A0000000000009DD
字面无效。你的意思是使用字符串文字吗?这些都只是Java语言的问题,并且与JSON本身无关。
答案 1 :(得分:1)
除了Java中的snytax错误之外,您的JSON示例也是无效的语法。使用jsonlint或其他服务进行检查。它应如下所示:
{
"set_boot": true,
"synchronous": true,
"filters": {
"host_refs": [
"6005076802818994A0000000000009DD"
]
},
"volumes": [
"*all"
],
"allow_unsupported": true
}