【发布时间】:2018-06-14 14:03:41
【问题描述】:
我使用 C# 开发了一个 UWP 应用程序,这连接了一个 PHP WebService,这个 Web 服务返回一个使用 json_encode 函数编码的数组,我无法在我的 UWP 应用程序中解析这个 json 字符串,请帮助
1:PHP 代码
$aCli[]= array("CAT"=>"OK","MSG"=>"SESION-OK","EXTRA"=>array("ID"=>"$spID","NOM"=>"$spNom"));
echo json_encode($aCli);
2:使用邮递员的结果是:
[{"CAT":"OK","MSG":"SESION-OK","EXTRA":{"ID":"3","NOM":"CHARLS"}}]
3。使用 C# 中的异步任务的结果是:
"[{\"CAT\":\"OK\",\"MSG\":\"SESION-OK\",\"EXTRA\":{\"ID\":\"3\",\"NOM\":\"CHARLS\"}}]"
4。如何反序列化这个字符串?,我正在尝试使用
using Windows.Data.Json;
5。这是本次使用的代码
sJSON= await IniciarSesion();//this use async class to connect with webservice
JsonObject objJson = JsonObject.Parse(sJSON);//error is raised in this line
/*Json String is invalid*/
sCat = objJson["CAT"].GetString();
sMsg = objJson["MSG"].GetString();
【问题讨论】:
-
显示 IniciarSesion 代码。
-
不确定这是否是问题所在,但您的 JSON 是数组的表示,而不是对象。您可以使用 JsonArray 而不是 JsonObject,也许(或者,更改您的 php 以仅返回对象)
-
根据@James,将
$aCli[] = blabla替换为$aCli = blabla(json 编码对象),而不是一个对象的json 编码数组。 -
@YvesLeBorg 我需要编码数组,用于从我的应用程序的其他页面的表中列出记录