Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中如何通过请求向web服务发送JSON对象_Android - Fatal编程技术网

android中如何通过请求向web服务发送JSON对象

android中如何通过请求向web服务发送JSON对象,android,Android,我想将JSON对象作为请求传递给web服务,就像我在下面提到的那样 Result:{ "email":"xxxxxxx", "password":"xxxxxx", "Marks":[ { "mark1":"50", "mark2":"70" } ], "firstname":"xxxx", "lastname":"xxxxx" } 我的代码: 此处消息应具有上述格式的json对象。如何格式化json对象 谢谢。您可以像字符串一样发送: List<NameVa

我想将JSON对象作为请求传递给web服务,就像我在下面提到的那样

Result:{
 "email":"xxxxxxx",
 "password":"xxxxxx",
 "Marks":[
  {
   "mark1":"50",
   "mark2":"70"
  }
],
"firstname":"xxxx",
"lastname":"xxxxx"
}
我的代码:

此处消息应具有上述格式的json对象。如何格式化json对象


谢谢。

您可以像字符串一样发送:

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("json", message.toString()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

您可以像字符串一样发送:

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("json", message.toString()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

如果您在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"));

如果您在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"));

这可能会帮助您使用GSON库。GSON是一个用于解析JSON资源的Google库。关于编组,它基本上意味着一种将数据结构(如OOP语言中的对象)转换为JSON的方法…:


这可能会帮助您使用GSON库。GSON是一个用于解析JSON资源的Google库。关于编组,它基本上意味着一种将数据结构(如OOP语言中的对象)转换为JSON的方法…:


首先,您上面提到的JSON是无效的

现在,

这里的消息应该有上面格式的json对象。我怎么能 格式化JSON对象

=>有两种方法可以做到这一点:

1)使用JSONObject或JSONArray类创建请求结构,如:

String strRequest = "{\"email\":\"xxxxxxx\",\"password\":\"xxxxxx\"}";
JSONObject objRequest=新的JSONObject(); objRequest.putString(“电子邮件”,“xxxx”); objRequest.putString(“密码”、“xxxx”)

在HttpPost对象内设置实体时,将其转换为字符串值

2)糟糕的方法是,简单地用转义序列生成字符串值,类似于:

String strRequest = "{\"email\":\"xxxxxxx\",\"password\":\"xxxxxx\"}";

首先,您上面提到的JSON是无效的

现在,

这里的消息应该有上面格式的json对象。我怎么能 格式化JSON对象

=>有两种方法可以做到这一点:

1)使用JSONObject或JSONArray类创建请求结构,如:

String strRequest = "{\"email\":\"xxxxxxx\",\"password\":\"xxxxxx\"}";
JSONObject objRequest=新的JSONObject(); objRequest.putString(“电子邮件”,“xxxx”); objRequest.putString(“密码”、“xxxx”)

在HttpPost对象内设置实体时,将其转换为字符串值

2)糟糕的方法是,简单地用转义序列生成字符串值,类似于:

String strRequest = "{\"email\":\"xxxxxxx\",\"password\":\"xxxxxx\"}";

您还可以使用现有库,如android json rpc

您也可以使用现有库,如android json rpc

如果我使用您的代码,我会得到未序列化的输出,如{“Result”:{“lastname”:“xxxx”,“FirstName”:“xxxx”,“Marks”:[{“mark2”:“70”,“mark1”:“50”}],“password”:“xxx”,“email”:“xxxx”}字段的位置已更改。我需要按此顺序设置email、pass、marks、firstname和lastname。并且我不需要在Result和endOrder之前加上open和close括号,这对JSON不重要-这是默认情况下的,因为它的设计结构。您的服务器端代码将正确地检测到它,因为它将基于键值对对对它进行评估。我的输出将“Result”视为一个键,这就是为什么它被格式化为一个完美的json对象。您可以使用jsonlint.com验证Json。如果json格式无效,那么服务器端代码将不会将其检测为json对象,并将抛出错误。如果我使用ur代码,我将得到未序列化的输出,如{“Result”:{“lastname”:“xxxx”,“FirstName”:“xxxx”,“Marks”:[{“mark2”:“70”,“mark1”:“50”}],“password”:“xxx”,“email”:“xxxx”}字段的位置已更改。我需要电子邮件、pass、Marks、,firstname,lastname,按此顺序排列。我不需要在Result和endOrder之前加上open和close括号,这对于JSON来说并不重要-这是默认的,因为它的设计结构。您的服务器端代码将正确地检测到它,因为它将基于键值对对对它进行评估。我的输出将“Result”视为一个键,这就是为什么它被格式化为一个完美的json对象。您可以使用jsonlint.com验证Json。如果json格式无效,则服务器端代码将不会将其检测为json对象,并将抛出错误。可能重复的可能重复的