我正在尝试将一些映射配置表示为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是我看到此配置可以使用的唯一方式。
答案 0 :(得分:3)
不太好。 web.config是XML,并且XML中不允许使用引号而不将它们转义为“。在JSON上执行此操作仍然会使”难以“读取/维护.Base64即serhiyb是一种解决方案,但是无法维护一个人。
我将它们存储为appsettings键/值对,然后在运行时生成json字符串。
如果你是100%,那么字符串永远不会改变,那么转义或Base64是一个选项。
答案 1 :(得分:1)
根据您的限制,我只需将其编码为Base64
字符串,并在从web.config中读取时将其解码回来。
答案 2 :(得分:0)
如果使用"
代替引号字符,则可以将JSON存储在应用程序设置或连接字符串中,而Web.config中没有问题。例如:
<add key="ThisIsJson" value="[{"Name":"xyz"}]"/>
这至少在Json.NET中也不需要任何特殊处理。
答案 3 :(得分:0)
在我的web.config中,方括号用于使用变量{0}或{1}。 因此,我需要使用双括号将它们转义:
<add key="ThisIsJson" value="{{"Name":"xyz"}}"/>
希望这会有所帮助。