Android 在服务器端处理JSON

Android 在服务器端处理JSON,android,json,Android,Json,我想从Android应用程序向服务器发送数据。 在客户端,也就是应用程序,我可以创建JSON对象并将其发送到服务器。 问题是,我不知道如何在服务器端“处理”它。我希望我的服务器所做的就是接收JSON,解析它,并将其显示给我。就是这样 我知道这是一个相当模糊的问题,但我真的不知道从哪里开始,如果有人能给我看一个完整的教程,我会很高兴的 谢谢 使用PHP和json_decode() 下面是一个如何处理数据的快速示例: // get json $input = jso

我想从Android应用程序向服务器发送数据。 在客户端,也就是应用程序,我可以创建JSON对象并将其发送到服务器。 问题是,我不知道如何在服务器端“处理”它。我希望我的服务器所做的就是接收JSON,解析它,并将其显示给我。就是这样

我知道这是一个相当模糊的问题,但我真的不知道从哪里开始,如果有人能给我看一个完整的教程,我会很高兴的

谢谢

使用PHP和json_decode()

下面是一个如何处理数据的快速示例:

        // get json
        $input = json_decode($_GET["json"]);

        // get values
        $firstname = $input->firstName;
        $surename = $input->lastName;
        $age = intval($input->age);

        // check values
        if (isset($firstname) && !empty($firstname) && 
            isset($surename) && !empty($surename) &&
            isset($age) && is_numeric($age))
        {
            // do something
            echo "Hello ".htmlspecialchars($firstname)." ".htmlspecialchars($surename)."!<br>";
            echo "You are $age years old! Wow.";
        }
        else
        {
            echo "Some values are missing or incorrect";
        }
//获取json
$input=json_decode($_GET[“json”]);
//获取价值
$firstname=$input->firstname;
$surename=$input->lastName;
$age=intval($input->age);
//检查值
如果(isset($firstname)&&!空($firstname)&&
isset($surename)&!empty($surename)&&
isset($age)和is_数字($age))
{
//做点什么
回显“你好”.htmlspecialchars($firstname)。”.htmlspecialchars($surename)。“!
”; echo“你们是$age岁!哇!”; } 其他的 { echo“某些值丢失或不正确”; }
我在本例中使用了GET参数。如果您有较大的数据,请使用POST而不是GET

例如: URL:{“firstName”:“John”,“lastName”:“Doe”,“age”:23} 输出:你好,John Doe! 你23岁了!哇

但是:确保在应用程序中对JSON数据进行编码。在我的示例中,浏览器就是这样做的。

使用PHP和json_decode()
// Some groovy code to dump an incoming request
import com.sun.net.httpserver.*;
HttpServer server = HttpServer.create(new InetSocketAddress(2228),0)
server.createContext('/', { HttpExchange exchange ->
    println 'got a request'
    println 'requestHeaders '+exchange.requestHeaders
    println 'requestBody '+exchange.requestBody.text
    exchange.sendResponseHeaders(200,0);
    exchange.responseBody.write('hello from groovy land.'.bytes)
    exchange.responseBody.close();
    println 'all done'
}  as HttpHandler)
server.start();

下面是一个如何处理数据的快速示例:

        // get json
        $input = json_decode($_GET["json"]);

        // get values
        $firstname = $input->firstName;
        $surename = $input->lastName;
        $age = intval($input->age);

        // check values
        if (isset($firstname) && !empty($firstname) && 
            isset($surename) && !empty($surename) &&
            isset($age) && is_numeric($age))
        {
            // do something
            echo "Hello ".htmlspecialchars($firstname)." ".htmlspecialchars($surename)."!<br>";
            echo "You are $age years old! Wow.";
        }
        else
        {
            echo "Some values are missing or incorrect";
        }
//获取json
$input=json_decode($_GET[“json”]);
//获取价值
$firstname=$input->firstname;
$surename=$input->lastName;
$age=intval($input->age);
//检查值
如果(isset($firstname)&&!空($firstname)&&
isset($surename)&!empty($surename)&&
isset($age)和is_数字($age))
{
//做点什么
回显“你好”.htmlspecialchars($firstname)。”.htmlspecialchars($surename)。“!
”; echo“你们是$age岁!哇!”; } 其他的 { echo“某些值丢失或不正确”; }
我在本例中使用了GET参数。如果您有较大的数据,请使用POST而不是GET

例如: URL:{“firstName”:“John”,“lastName”:“Doe”,“age”:23} 输出:你好,John Doe! 你23岁了!哇


但是:确保在应用程序中对JSON数据进行编码。在我的示例中,浏览器可以做到这一点。

您甚至可以在服务器上使用一些shell脚本CGI文件。下面是一个示例,它将一些固定数据返回给JSONP请求以测试某些内容

// Some groovy code to dump an incoming request
import com.sun.net.httpserver.*;
HttpServer server = HttpServer.create(new InetSocketAddress(2228),0)
server.createContext('/', { HttpExchange exchange ->
    println 'got a request'
    println 'requestHeaders '+exchange.requestHeaders
    println 'requestBody '+exchange.requestBody.text
    exchange.sendResponseHeaders(200,0);
    exchange.responseBody.write('hello from groovy land.'.bytes)
    exchange.responseBody.close();
    println 'all done'
}  as HttpHandler)
server.start();
#!/bin/bash
#
# Handle a JSONP request for data returning a fake queue status result.

read -r -d '' DATA <<'EOF'
{
 name: "TESTHOST",
 status: "running",
 items: [
  {id:"4",status:"failed",title:"anadin map 2",user:"pat",progress:100},
  {id:"2",status:"running",title:"silicon map",user:"tim",progress:52},
  {id:"3",status:"queued",title:"anadin map",user:"pat",progress:0},
  {id:"6",status:"queued",title:"neon calibration",user:"ian",progress:0}
 ]
}
EOF

CB=$(echo $QUERY_STRING | sed -n 's/.*jsoncallback=\([^&]*\).*$/\1/p')
DATA=${DATA/52/$(expr $RANDOM % 100)}
DATA="${CB}(${DATA});"
echo -e "content-type: application/json\r"
echo -e "content-length: ${#DATA}\r"
echo -e "x-test: $CB\r"
echo -e "\r"
echo "$DATA"
#/bin/bash
#
#处理JSONP请求以获取返回假队列状态结果的数据。

read-r-d''数据您甚至可以在服务器上使用一些shell脚本CGI文件。下面是一个示例,它将一些固定数据返回给JSONP请求以测试某些内容

#!/bin/bash
#
# Handle a JSONP request for data returning a fake queue status result.

read -r -d '' DATA <<'EOF'
{
 name: "TESTHOST",
 status: "running",
 items: [
  {id:"4",status:"failed",title:"anadin map 2",user:"pat",progress:100},
  {id:"2",status:"running",title:"silicon map",user:"tim",progress:52},
  {id:"3",status:"queued",title:"anadin map",user:"pat",progress:0},
  {id:"6",status:"queued",title:"neon calibration",user:"ian",progress:0}
 ]
}
EOF

CB=$(echo $QUERY_STRING | sed -n 's/.*jsoncallback=\([^&]*\).*$/\1/p')
DATA=${DATA/52/$(expr $RANDOM % 100)}
DATA="${CB}(${DATA});"
echo -e "content-type: application/json\r"
echo -e "content-length: ${#DATA}\r"
echo -e "x-test: $CB\r"
echo -e "\r"
echo "$DATA"
#/bin/bash
#
#处理JSONP请求以获取返回假队列状态结果的数据。

read-r-d“”数据您使用的是什么服务器端语言?老实说,我没有任何使用服务器端语言的经验。我所需要的只是能够接收JSON并对其进行解析。我希望您能向我展示一个完整的示例,说明如何实现这一点。谢谢。第一步是选择服务器端语言(可能还有库/框架)使用.PhP会很好。但我找不到任何完全涵盖此主题的教程。我不想学习PhP或asp.net,只想执行这一个“任务”。您使用的是什么服务器端语言?老实说,我没有任何使用服务器端语言的经验。我所需要的只是能够接收JSON并对其进行解析。我希望您能向我展示一个完整的示例,说明如何实现这一点。谢谢。第一步是选择服务器端语言(可能还有库/框架)使用.PhP会很好。但我找不到任何完全涵盖此主题的教程。我不想学习PhP或asp.net,只想简单地执行这一个“任务”。谢谢,但我如何接收我从应用程序发送的字符串?我添加了一个使用GET的简短示例。希望这是有帮助的谢谢,但是我怎样才能收到我从我的应用程序发送的字符串呢?我添加了一个使用GET的简短示例。希望这是有益的