【问题标题】:how to get JS Object from js file in C#如何从 C# 中的 js 文件中获取 JS 对象
【发布时间】:2014-04-17 16:07:07
【问题描述】:

我有 db.js 文件,其中包含 2 种 javascrip 对象:问题,答案

var questions = [
    { id: 1, src: "images/findbugQ/P1.jpg", dif: 1, type: "findbugs", description: "" },
    { id: 2, src: "images/findbugQ/P2.jpg", dif: 1, type: "findbugs", description: "" }]


var answer= [
    { id: 1, questionId: 1, width: "12%", height: "6%", top: "7%", left: "65%" },
    { id: 2, questionId: 2, width: "7%", height: "6%", top: "8%", left: "11%" },
    { id: 3, questionId: 3, width: "5%", height: "6%", top: "6%", left: "50%" }]

如何在 db.js 文件的 URL 为 /js/db.js 的 C# 代码中获取 question[1].id

【问题讨论】:

  • 数据最初来自哪里?是硬编码的吗?
  • 您必须解析脚本文件并从结果状态中提取值。而且,.NET 没有内置这样的解析器。 “Parse JavaScript code in C#”可能对此有所帮助。不过,如果您可以控制 db.js,则可以将其重写为 JSON 文件。

标签: c#


【解决方案1】:

简单的答案。你不能

服务器端编码和客户端编码有一些限制。

您可以做的是将 JSON 字符串发送到某个通用处理程序并从那里解析它。

【讨论】:

    【解决方案2】:

    看看下面的问题。您可以与这些引擎进行交流并通过这种方式获得答案:embedding javascript engine into .net

    【讨论】:

      【解决方案3】:

      你不能以你想要的格式在 C# 中加载 JS 文件。

      但是你可以按照以下方式进行。

      • 使用可以使用 JavaScriptSerilizer 反序列化的 java 脚本对象,而不是简单的两个数组

      如果我必须这样做,我可以按照以下方式进行。

      1. 创建 C# 类,其所有属性与我在 JS 中所需的名称相同。
      2. 我填充这些对象并使用 JavaScriptSerilizer 序列化该对象,因此它给了我一种 JSON 格式。

      下次无论我有什么数据,我都会填写 JSON 格式,这样我就可以在 C# 中反序列化。

      【讨论】:

        猜你喜欢
        • 2018-07-09
        • 1970-01-01
        • 1970-01-01
        • 2020-09-04
        • 2021-12-31
        • 1970-01-01
        • 2018-09-21
        • 2018-12-15
        • 2019-09-06
        相关资源
        最近更新 更多