Json在Web.Config AppSettings中

时间:2016-08-19 19:40:41

标签: c# asp.net json asp.net-mvc azure-web-sites

我正在尝试将一些映射配置表示为json:

<ul>
  <li class="head"><a href="#favorites">Favourites</a></li>
  <li><a href="#breakfasts"><i>Breakfasts</i></a></li>
  <li><a href="#dinners"><i>Dinners</i></a></li>
  <li><a href="#suppers"><i>Suppers</i></a></li>
</ul>
<div>
  <ul id="breakfasts">
    <li class="head">Breakfasts</li>
    <li>{Breakfast 1}</li>
    <li>{Breakfast 2}</li>
    <li>{Breakfast 3}</li>
  </ul>
  <ul id="dinners">
    <li class="head">Dinners</li>
    <li>{Dinner 1}</li>
    <li>{Dinner 2}</li>
    <li>{Dinner 3}</li>
  </ul>
  <ul id="suppers">
    <li class="head">Dinners</li>
    <li>{Supper 1}</li>
    <li>{Supper 2}</li>
    <li>{Supper 3}</li>
  </ul>
  <ul class="favorites">
    <li class="head">Favourites</li>
    <li>{Favourite 1}</li>
    <li>{Favourite 2}</li>
    <li>{Favourite 3}</li>
  </ul>
</div>

是否可以在appsettings中存储json?
我知道我可以在web.config中创建自定义部分 但是这个应用程序可以部署到Azure Web Apps,其中appsettings是我看到此配置可以使用的唯一方式。

4 个答案:

答案 0 :(得分:3)

不太好。 web.config是XML,并且XML中不允许使用引号而不将它们转义为“。在JSON上执行此操作仍然会使”难以“读取/维护.Base64即serhiyb是一种解决方案,但是无法维护一个人。

我将它们存储为appsettings键/值对,然后在运行时生成json字符串。

如果你是100%,那么字符串永远不会改变,那么转义或Base64是一个选项。

答案 1 :(得分:1)

根据您的限制,我只需将其编码为Base64字符串,并在从web.config中读取时将其解码回来。

答案 2 :(得分:0)

如果使用&quot;代替引号字符,则可以将JSON存储在应用程序设置或连接字符串中,而Web.config中没有问题。例如:

<add key="ThisIsJson" value="[{&quot;Name&quot;:&quot;xyz&quot;}]"/>

这至少在Json.NET中也不需要任何特殊处理。

答案 3 :(得分:0)

在我的web.config中,方括号用于使用变量{0}或{1}。 因此,我需要使用双括号将它们转义:

<add key="ThisIsJson" value="{{&quot;Name&quot;:&quot;xyz&quot;}}"/>

希望这会有所帮助。