在C#中解析获取的数据

时间:2016-03-01 17:30:29

标签: c# win-universal-app visual-studio-2015

我是C#的新手并尝试编写一些代码来获取网页并将其解析为可读格式。

我使用uri

从网页上获取了数据
var uri2 = new Uri("explame.com")

我在下面的格式中看到响应如下:

{"name":"abc" "country":"xyz" "citizenship":"A" [{"pincode":"111", "Dis":"no"] Lot's of data follows something like that

有多个属性“name”和“country”作为回应。我的问题是如何获取如下所示的数据

name:abc
country:xyz
citizenshih:A
pincode 111
dis:no

对于响应代码中的所有属性。

2 个答案:

答案 0 :(得分:1)

这是您获得的数据的确切格式吗?因为那是JSON- ish ,但它不是有效的JSON,也不会被解析。 如果,您实际上是在获取JSON,那么您可以对其进行反序列化。

使用类似Newtonsoft's JSON library的内容,您可以轻而易举地de-serialize JSON into an object。例如,这个JSON:

{
  "name":"abc",
  "country":"xyz",
  "citizenship":"A",
  "someProperty": [
    {
      "pincode":"111",
      "Dis":"no"
    }]
}

可以映射到这些类型:

class MyClass
{
    public string Name { get; set; }
    public string Country { get; set; }
    public string Citizenship { get; set; }
    public IEnumerable<MyOtherClass> SomeProperty { get; set; }
}

class MyOtherClass
{
    public string Pincode { get; set; }
    public string Dis { get; set; }
}

在这种情况下,反序列化可能就像这样简单:

var myObject = JsonConvert.DeserializeObject<MyClass>(yourJsonString);

答案 1 :(得分:0)

你可以尝试

public class MainActivity extends AppCompatActivity {

  @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    LinearLayout layout = (LinearLayout) findViewById(R.id.layout);
    for (int i = 0; i < 10; i++) {
      LinearLayout.LayoutParams lp =
          new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);

      AppCompatCheckBox myCheckBox = new AppCompatCheckBox(this);
      myCheckBox.setText("text");
      myCheckBox.setTextSize(12);

      myCheckBox.setId(i);

      layout.addView(myCheckBox, lp);
    }
  }

}