要列出的JSON字符串或asp.net 2.0中的其他可用格式

时间:2008-09-19 15:28:46

标签: asp.net json

我有一个JSONstring格式出现。我需要将它存储在key-pair值或类似的值中。我使用的是asp.net 2.0,无法使用DLL之类的第三方Newtonsoft.Json.dll。我猜最后一个选项是使用regular expression

有人可以帮帮我吗?

4 个答案:

答案 0 :(得分:4)

如果你转到http://www.json.org/并查看页面底部有几十个json库,其中大多数是开源的,我相信它们列出了8个C#。如果你不能引用这些库中的一个,我认为最好的办法就是找到一个具有许可许可的程序,然后只需将代码添加到你的项目中。

另一个想法是查看http://www.json.org/处的图表,语法和语法,然后编写自己的解析器,但正则表达式是 NOT 的方法。如果您不知道如何编写解析器,您可以查看其中一个开源json库,或者从一个不太复杂的东西开始,就像一个好的CSV解析器一样,这篇论文看起来很不错:http://www.boyet.com/Articles/CsvParser.html

答案 1 :(得分:3)

可以使用C#中的JScript将JSON序列化为键/值对。您需要为项目添加一些引用。它们是.NET框架的一部分,您只需要添加对项目的引用。你需要:

  • Microsoft.JSript
  • Microsoft.Vsa

首先,在课堂顶部使用:

using Microsoft.JScript;
using Microsoft.JScript.Vsa;

然后,执行脚本的引擎需要在“Page”代码隐藏的某处初始化:

VsaEngine Engine = VsaEngine.CreateEngine();

然后,您只需创建此方法并通过传入JSON对象来调用它:

object EvalJScript(string JScript)
{
    object result = null;
    try
    {
        result = Microsoft.JScript.Eval.JScriptEvaluate(JScript, Engine);
    }
    catch (Exception ex)
    {
        return ex.Message;
    }

    return result;
}

返回的object类型(如果传入JSON)是“JSObject”。您可以将其值作为键/值对进行访问。有关此对象的更多详细信息,请阅读MSDN documentation

以下是使用代码的示例:

string json = "({Name:\"Dan\",Occupation:\"Developer\"})";

JSObject o = EvalJScript(json) as JSObject;

string name = o["Name"] as string; // Value of 'name' will be 'Dan'

答案 2 :(得分:0)

你能使用JScript.NET吗?

如果是这样,使用eval()应该很容易 - 然后只需循环返回的对象并转换为KeyValuePair或其他

答案 3 :(得分:-1)

您需要使用jscript.net作为语言背后的代码,但是如果您喜欢这样,那么您网站的其他页面应该可以保留为c#。

如前面的评论所述,您需要了解安全方面和风险 - 如果您信任正在解析的JSON,则只使用eval!