2011-08-16 8 views
1

Android 앱에서 내 서버로 데이터를 보내려고합니다. 클라이언트 측에서 애플리케이션을 의미하므로 JSON 객체를 만들어 서버로 보낼 수 있습니다. 문제는 서버 측에서 처리하는 방법을 모르겠다는 것입니다. 내 서버에 JSON을 수신하고 구문 분석 한 후 나에게 보여 주기만하면됩니다. 그게 전부입니다.서버 측 JSON 처리

꽤 모호한 질문입니다.하지만 어디서부터 시작해야할지 정말 모르겠고 누구든지 나에게 완벽한 튜토리얼을 보여줄 수 있다면 좋아할 것입니다.

감사합니다.

+0

사용중인 서버 측 언어는 무엇입니까? –

+0

솔직히 서버 측 언어로 작업 한 경험이 없습니다. 필요한 것은 JSON을 받아 구문 분석 할 수 있어야한다는 것입니다.이 작업을 수행하는 방법에 대한 완전한 예제를 보여주기 바란다. 감사합니다. – Tofira

+0

첫 번째 단계는 서버 측 언어 (그리고 아마도 라이브러리/framework)도 함께 작업 할 수 있습니다. –

답변

1

를 사용하여 PHP와 json_decode() 여기 http://php.net/manual/en/function.json-decode.php

데이터를 처리하는 방법을 간단한 예 :

 // 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"; 
     } 

나는이 예제에서는 GET 매개 변수를 사용했다. 더 큰 데이터가 있으면 GET 대신 POST를 사용하십시오.

예 : URL : http://localhost/test/index.php?json= { "firstName을": "존", "이 lastName": "미상", "나이": 23} 출력 : John Doe 님 안녕하십니까! 23 세입니다! 와우.

하지만, 애플리케이션에서 JSON 데이터를 인코딩해야합니다. 내 예제에서는 브라우저가 그것을 수행합니다.

+0

감사합니다.하지만 앱에서 보낸 String을 어떻게받을 수 있습니까? – Tofira

+0

[일부 연구] (http://www.google.ca/search?q=PHP+parse+JSON). –

+0

GET을 사용하여 간단한 예를 추가했습니다. 희망이 도움이됩니다. – daniel

0
// 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(); 
0

서버에서 일부 셸 스크립트 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" 

요청 데이터의 일부 구문 분석을 대체하고 적절하게 반환하십시오.