如何从web api C#返回图片网址?

时间:2018-04-17 09:19:43

标签: c# asp.net-web-api

我在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();
        }

1 个答案:

答案 0 :(得分:0)

当字符串以@为前缀时,它是一个文字字符串,不再使用转义字符。您仍然可以使用“”这样的“我的”“字符串”来逃避双引号。这将被解释为:my“string。

然而,JSON需要转义反斜杠,这也就是C#中没有@的字符串。

如果您使用的是JSON反序列化器,您的Android设备应该正确读取它。