Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Json中查找字符串_Json_Vb.net - Fatal编程技术网

在Json中查找字符串

在Json中查找字符串,json,vb.net,Json,Vb.net,这是我想做的 我有一个json字符串,如下所示: { "id":1, "description":"my description 1", }, { "id":2, "description":"my description 2", }, ... 我用以下代码反序列化了它的VB.Net,但我可以将它移植到C: Dim result As String = File.ReadAl

这是我想做的

我有一个json字符串,如下所示:

{
"id":1,
"description":"my description 1",
},
{
"id":2,
"description":"my description 2",
},
...
我用以下代码反序列化了它的VB.Net,但我可以将它移植到C:

Dim result As String = File.ReadAllText("C:\Users\User\Desktop\Json.txt")
Dim json As Object = New JavaScriptSerializer().Deserialize(Of Object)(result)
现在是我被卡住的部分。 我的程序有一个文本框和一个按钮。 我希望能够在文本框中输入文本id,例如1,当我按下按钮时,它会在Json字符串中搜索id 1并输出其描述

我搜索1,它输出我的描述1


我怎么能这样做呢?

不知道你想要什么语言,但这是你需要做的


创建一个表示要反序列化的对象的类。 将字符串反序列化为对象类型的列表。 使用Linq选择适当的描述。 我选择在这里使用Newtonsoft进行反序列化,但您可以选择任何内容

public class MyObject
{
    public string Id { get; set; }
    public string Description { get; set; }
}
为了实际找到合适的结果

var json = File.ReadAllText("test.json");
var objectList = JsonConvert.DeserializeObject<List<MyObject>>(json);

//Replace the 1 with the textboxSearch.Text accordingly
var foundItem = objectList.Where(_ => _.Id == "1").FirstOrDefault();

if (foundItem != null)
    MessageBox.Show(foundItem.Description);
//You can do whatever you want with the object here

创建一个表示此数据的类,从那里开始只会变得更容易。现在它只是一个物体…我该怎么做。有任何引用吗?公共类MyItem公共属性id作为整数公共属性描述作为字符串结束类应该让您开始。这是一个很棒的解决方案。谢谢你,这工作完美无瑕!