我想将JSON对象作为请求传递给Web服务,如下所述。
Result:{
"email":"xxxxxxx",
"password":"xxxxxx",
"Marks":[
{
"mark1":"50",
"mark2":"70"
}
],
"firstname":"xxxx",
"lastname":"xxxxx"
}
我的代码: ...
HttpPost httppost = new HttpPost("My Url");
httppost.setEntity(new StringEntity(**message**.toString(), "UTF-8"));
这里消息应该有上面格式的json对象。我如何格式化JSON对象?
感谢。
答案 0 :(得分:2)
如果您在android端实现上面的json对象时遇到问题,那么您可以像下面那样构建它,
JSONObject message = new JSONObject();
JSONObject mParams = new JSONObject();
mParams.put("email", "xxxx");
mParams.put("password", "xxx");
JSONArray markArray = new JSONArray();
JSONObject markObj = new JSONObject();
markObj.put("mark1", "50");
markObj.put("mark2", "70");
markArray.put(markObj);
mParams.put("Marks", markArray);
mParams.put("FirstName", "xxxx");
mParams.put("lastname", "xxxx");
message.put("Result",mParams);
现在在你的代码中
HttpPost httppost = new HttpPost("My Url");
httppost.setEntity(new StringEntity(**message**.toString(), "UTF-8"));
答案 1 :(得分:1)
您可以像字符串一样发送它:
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("json", message.toString()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
和
$data = json_decode($json);
答案 2 :(得分:1)
首先,您在上面提到的JSON是无效。
现在,
这里的消息应该有上面格式的json对象。我怎么可能 格式化JSON对象?
=&GT;有两种方法可以做到这一点:
1)使用JSONObject或JSONArray类创建请求结构,类似于:
JSONObject objRequest = new JSONObject(); objRequest.putString( “电子邮件”, “XXXX”); objRequest.putString( “密码”, “XXXX”);
在HttpPost对象中设置实体时,将其转换为String值。
2)糟糕的方式,简单生成带有转义序列的字符串值,如:
String strRequest = "{\"email\":\"xxxxxxx\",\"password\":\"xxxxxx\"}";
答案 3 :(得分:0)
这可能会对您有所帮助..使用GSON库。 GSON是一个用于解析JSON资源的Google库。关于编组,它基本上意味着一种将数据结构(如OOP语言中的对象)转换为JSON的方法...... for instance:
// Java object
class Book {
private String title;
private String isbn;
private Set<author> authors;
}
@Entity
class Author {
private String firstName;
private String lastName;
}
要...
{title: "Vocation Createurs",
isbn: "2829302680",
authors: [{firstName: "Barbara", lastName: "Polla"},
{firstName: "Pascal", lastName: "Perez"}]}
答案 4 :(得分:0)
您还可以使用现有的库,如android-json-rpc