JSON

JSON数据处理流程之WEB数据交互(CGI)

字号+ 作者:H5之家 来源:H5之家 2017-03-16 10:04 我要评论( )

JSON数据处理流程之WEB数据交互(CGI)

1、Client端通过JavaScript获取页面元素值,并由xmlHttp将参数及其值发送到服务器:
(以下代码中尖括号内的内容需要做具体替换)
var xmlHttp;
function doSend(){
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            var requestURL="cgi-bin/xxx.cgi";
            xmlHttp.open("POST",requestURL,true);//异步方式
            xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            xmlHttp.onreadystatechange=handlestate; //function pointer
alert("Request parameter is: ="+document.getElementById("").value+"&="+document.getElementById("").value);
xmlHttp.send("="+document.getElementById("").value+"&="+document.getElementById("").value);
}
Client端对xmlHtpp状态的处理函数:
function handlestate (){
    if(xmlHttp.readyState==4){
     if(xmlHttp.status==200) doReturn();//处理返回数据
        else{
            alert("Network is unreliable. Please try again!");
            return false;
        }
    }
}
2、服务器获取Client端上传来的参数及其值,并进行分析处理(标准I/O操作);如对GET或POST上来的参数处理后,获得参数值,进行相关处理(注意此处是对环境变量和标准I/O的读操作);
3、服务器将处理结果返回(注意此处返回是对标准I/O的写操作):
include “json.h”
char stringBuf[100]=”test string”;
int a=12345;
struct json_object *pstJsonObject;
    pstJsonObject = json_object_new_object();
    if(NULL == pstJsonObject)
        return -1;
    json_object_object_add(pstJsonObject, "", json_object_new_int(element1_value>)); // element1_value1 -> a(加入整数值到json object)
    json_object_object_add(pstJsonObject, "", json_object_new_string(element2_value>)); // element1_value2 -> stringBuf(加入字符串到json object)
printf("%s\n\n","Content-Type:text/html;charset=UTF-8"); //it’s important!!
    printf("%s", json_object_to_json_string(pstJsonObject)); //send the data back to client
    json_object_put(pstJsonObject);

4、Client端处理服务器返回结果:
function doReturn(){
    var jsonString=xmlHttp.responseText;
    alert("Response is:"+jsonString);
    try{
     var jsonObject= jsonString.parseJSON();//注意:不同的json.js版本此处可能不同
    }
    catch(e){
     alert("JSON error type:"+ e.name +",cause description:" + e.message);
        return false;
    }
alert(jsonObject.element1>.toString());//取得element1的int值并转换为string
alert(jsonObject.element2>);//取得element2的值(string就不再转换)
    //do something for u
    }



本文来自ChinaUnix博客,如果查看原文请点:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • php封装json通信接口详解及实例

    php封装json通信接口详解及实例

    2017-03-16 16:04

  • Unity JavaScript 解析json

    Unity JavaScript 解析json

    2017-03-16 10:02

  • (64)使用 QJsonDocument 处理 JSON

    (64)使用 QJsonDocument 处理 JSON

    2017-03-16 08:01

  • Post异常500 Invalid token character ',' in token

    Post异常500 Invalid token character ',' in token "json, applic

    2017-03-16 08:00

网友点评