我在C#
中从网络API返回图片网址时遇到问题我有以下代码:
Product[] _products = new Product[]
{
new Product { Id = 1, Name = "AC Split 12K Inverter", Price = "20997 SDG",Image=@"\\192.168.2.113\C$\abc.png" },
new Product { Id = 2, Name = "AC Split 18K Inverter", Price = "31200 SDG",Image=@"\\192.168.2.113\C$\abz.png" },
new Product { Id = 3, Name = "AC Split 24K Inverter", Price = "40000 SDG",Image=@"\\192.168.2.113\C$\aby.png" }
};
public IEnumerable<Product> GetAllProducts()
{
return _products;
}
但我收到了以下回复
[{&#34; Id&#34;:1,&#34; Name&#34;:&#34; AC Split 12K Inverter&#34;,&#34; Price&#34;:&#34; 20997 SDG&#34;,&#34; Image&#34;:&#34; \\\\ 192.168.2.113 \\ C $ \\ abc.png&#34;},{&#34; Id&#34;: 2,&#34;名称&#34;:&#34; AC拆分18K逆变器&#34;,&#34;价格&#34;:&#34; 31200 SDG&#34;,&#34;图像&#34; :&#34; \\\\ 192.168.2.113 \\ C $ \\ abz.png&#34;},{&#34;标识&#34;:3,&#34;名称&#34;:&#34 ; AC拆分24K逆变器&#34;,&#34;价格&#34;:&#34; 40000 SDG&#34;,&#34;图像&#34;:&#34; \\\\ 192.168.2.113 \\ C $ \\ aby.png&#34;}]
并且我使用以下代码从Android设备消耗了json响应,但是图像URL我得到了双\ \
try {
// JSONObject jsonObject = new JSONObject(content);
// JSONArray jsonArray = jsonObject.getJSONArray("");
JSONArray jsonArray = new JSONArray(content);
for(int i =0;i<jsonArray.length(); i++){
JSONObject productObject = jsonArray.getJSONObject(i);
arrayList.add(new Products(
// productObject.getInt("id"),
productObject.getString("Name"),
productObject.getString("Price"),
productObject.getString("Image")
));
}
} catch (JSONException e) {
e.printStackTrace();
}
答案 0 :(得分:0)
当字符串以@为前缀时,它是一个文字字符串,不再使用转义字符。您仍然可以使用“”这样的“我的”“字符串”来逃避双引号。这将被解释为:my“string。
然而,JSON需要转义反斜杠,这也就是C#中没有@的字符串。
如果您使用的是JSON反序列化器,您的Android设备应该正确读取它。