使用AS3将数据发送到JSON

时间:2017-11-20 05:22:13

标签: json actionscript-3

我已经要求我的客户分享他的数据库登录名和密码,但他无法让我完全访问他的数据库(我认为是安全原因)。 他告诉我使用REST / JSON服务,该服务允许通过此URL发布数据,并使用特定的密钥来识别来自我的应用程序的所有数据。

这就是我的所作所为:

var urlRequest:URLRequest = new URLRequest("the_url_using JSON service");
urlRequest.method = URLRequestMethod.POST;

 var urlvars: URLVariables = new URLVariables;
urlvars.observer_name = "Test Coco";
urlvars.observation_number = "5433";

trace("urlvars = "+urlvars);

urlRequest.data = urlvars;

var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, onComplete);
urlLoader.load(urlRequest);

它正在发送,因为它正在发送数据,但数据格式似乎不正确..

url返回此错误:" Observer name is Missing"

" trace (urlvars)"输出:

urlvars = observer%5Fname=Test%20Coco&observation%5Fnumber=5433

所以我认为问题来自特殊角色或类似的东西(因为你可以" observer_name"结果由" observer%5Fname"和我们可以看到很多%5")

我知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

JSON字符串是通用对象的字符串表示形式。基本上你去了:

var anObject:Object =
{
    "observer_name": "Test Coco",
    "observation_number": 5433
};

或者你可以构建它

var anObject:Object = new Object;

anObject['observer_name'] = "Test Coco";
anObject['observation_number'] = 5433;

然后将其转换为字符串并附加到请求

var jsonString:String = JSON.stringify(anObject);

urlRequest.method = URLRequestMethod.POST;
urlRequest.data = jsonString;

详细了解:https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/JSON.html

请记住,我不知道您的REST服务器的具体细节,而上面的代码可能不能正常工作。我只解释了如何将JSON字符串作为POST请求发送。