【发布时间】:2015-07-28 00:24:36
【问题描述】:
我将以下内容作为纯字符串存储在 ArrayList 中,每行代表列表中一个项目的值,有没有办法生成以下样式的动态对象: [左操作数是属性] = [右操作数是该属性的值]
object.data.details[1].tid=711
object.data.details[1].type="ongoing"
object.data.details[1].attach="node1"
object.data.details[1].flowing[1].comid="component1"
object.data.details[1].flowing[1].system-usage.RAM="12%"
object.data.details[1].flowing[1].system-usage.CPU="3%"
object.data.details[1].flowing[1].system-usage.Pages=3
object.data.details[1].flowing[2].comid="component2"
object.data.details[1].flowing[2].system-usage.RAM="9%"
object.data.details[1].flowing[2].system-usage.CPU="2%"
object.data.details[1].flowing[2].system-usage.Pages=1
object.data.details[1].flowing[3].comid="component3"
object.data.details[1].flowing[3].system-usage.RAM="7%"
object.data.details[1].flowing[3].system-usage.CPU="7%"
object.data.details[1].flowing[3].system-usage.Pages=5
object.data.details[2].tid=712
object.data.details[2].type="ongoing"
object.data.details[2].attach="node2"
object.data.details[2].flowing[1].comid="component1"
object.data.details[2].flowing[1].system-usage.RAM="12%"
object.data.details[2].flowing[1].system-usage.CPU="3%"
object.data.details[2].flowing[1].system-usage.Pages=3
object.data.details[2].flowing[2].comid="component2"
object.data.details[2].flowing[2].system-usage.RAM="9%"
object.data.details[2].flowing[2].system-usage.CPU="2%"
object.data.details[2].flowing[2].system-usage.Pages=1
object.data.details[2].flowing[3].comid="component3"
object.data.details[2].flowing[3].system-usage.RAM="7%"
object.data.details[2].flowing[3].system-usage.CPU="7%"
object.data.details[2].flowing[3].system-usage.Pages=5
object.data.details[3].tid=713
object.data.details[3].type="ongoing"
object.data.details[3].attach="node2"
object.data.details[3].flowing[1].comid="component1"
object.data.details[3].flowing[1].system-usage.RAM="12%"
object.data.details[3].flowing[1].system-usage.CPU="3%"
object.data.details[3].flowing[1].system-usage.Pages=3
object.data.details[3].flowing[2].comid="component2"
object.data.details[3].flowing[2].system-usage.RAM="9%"
object.data.details[3].flowing[2].system-usage.CPU="2%"
object.data.details[3].flowing[2].system-usage.Pages=1
object.data.details[3].flowing[3].comid="component3"
object.data.details[3].flowing[3].system-usage.RAM="7%"
object.data.details[3].flowing[3].system-usage.CPU="7%"
object.data.details[3].flowing[3].system-usage.Pages=5
我希望有一个具有以下结构的对象:
object.data.details[i].flowing[j].comid="component1"
if i=j=1
object.data.details[i].flowing[j].system-usage.RAM="9%"
if i=1 and j=2
换句话说,我需要生成一个动态对象,它可以将数组列表作为属性列表,就像我们可以通过使用访问 asp.net gridview 中显示的任何值一样:
gridview1.rows[i].someproperty[j].value = "something"
我尝试使用 ExpandoObject 但也失败了
【问题讨论】:
-
是的,“有一种方法可以生成以下样式的动态对象”,但它有点过于宽泛了...旁注:使用 JSON 会让您的生活更轻松...跨度>
-
有趣的是;此列表实际上是从 JSON 对象生成的,但使用我构建的自定义处理器,以便我可以按照问题发布的方式获得结果。 @AlexeiLevenkov
-
请注意结构不是固定的,否则我可以构建一个类来将这些字符串值序列化为:(
-
@HassanAlrehamy - 我已经删除了我的答案,因为它似乎不是你需要的,我是否可以建议提供更多关于这个问题的细节,因为目前还不完全清楚是什么你需要;您似乎在说您想要获取一些 JSON,对其进行转换,将其转换为一堆字符串,然后将这些字符串转换回动态对象。哪个恕我直言没有多大意义 - 也许如果你能澄清这个自定义转换过程是什么以及为什么你不能只将一个动态对象转换为另一个,它可能更有意义:)
-
@StephenByrne-bro 忘了 json 和转换,如果你有上面显示的数据,你能或者不能动态生成动态对象吗?这是我的问题
标签: c# asp.net .net dynamic functional-programming