public class TalentESBData {
@SerializedName("metadata.title")
private String metadataTitle;
@SerializedName("metadata.description")
private String metadataDescription;
@SerializedName("metadata.keywords")
private String metadataKeywords;
@SerializedName("metadata.robots")
private String metadataRobots;
@SerializedName("metadata.author")
private String metadataAuthor;
@SerializedName("config.enable_comments")
private int configEnableComments;
@SerializedName("config.primary_category")
private int configPrimaryCategory;
@SerializedName("jbzoo.no_index")
private int jbzooNoIndex;
// Геттеры и сеттеры опустим их любая ide сгенерирует...
public String toJson(){
Gson gson = new Gson(); //библиотека для генерации json
String jsonResponse = gson.toJson(this);
return jsonResponse;
}
}
public class TalentMain {
public static void main(String[] args) {
TalentESBData talentData = new TalentESBData(); //инициализируем класс
talentData.setMetadataDescription(""); //заполняем поля какие надо
talentData.setMetadataAuthor("");
talentData.setMetadataKeywords("");
talentData.setMetadataRobots("");
talentData.setMetadataTitle("");
talentData.setConfigEnableComments(1);
talentData.setConfigPrimaryCategory(205);
talentData.setJbzooNoIndex(0);
System.out.println(talentData.toJson()); // Получаем json и выводим в консоль, в вашем случа
// вместо консоли можете отправлять эти данные или что там нужно сними делать.
}
}
{
"metadata.title": "",
"metadata.description": "",
"metadata.keywords": "",
"metadata.robots": "",
"metadata.author": "",
"config.enable_comments": 1,
"config.primary_category": 205,
"jbzoo.no_index": 0
}
Мне необходимо отсеивать пакеты по определенному шаблону (например, с определенными начальными двумя байтами данных). Погуглив, ничего не нашел по поводу отсеивания трафика по шаблонам данных в tcpdump.Посмотрите здесь, 11 страница. Вкратце, релевантный синтаксис Berkeley packet filter таков:
protocol[start:count]=0xHEXTEMPLATE
tcp[20:4] = 0x47455420
Если в tcpdump нет такой возможности, подскажите, пожалуйста, альтернативные снифферы, желательно не тяжелые и без гуя (для использования на сервере с CentOS).В tcpdump такая возможность (если я правильно понял вашу проблему) есть, но рекомендую обратить внимание на tshark, консольный вариант wireshark. Для захвата трафика они используют bpf-фильтры, фильтры для отображения трафика у них можно настроить более гибко, на мой взгляд.
<Window x:Class="WpfApplication3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="47*"/>
<RowDefinition Height="275*"/>
</Grid.RowDefinitions>
<TextBox x:Name="filter" TextChanged="filter_TextChanged"/>
<ListBox x:Name="lst" Grid.Row="1" />
</Grid>
</Window>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
List<string> lstSource = new List<string>() { "1", "2","3" };
viewSource = new CollectionViewSource();
viewSource.Source = lstSource;
viewSource.Filter += viewSource_Filter;
lst.ItemsSource = viewSource.View;
}
CollectionViewSource viewSource;
void viewSource_Filter(object sender, FilterEventArgs e)
{
e.Accepted = ((string)e.Item).IndexOf(filter.Text) >=0;
}
private void filter_TextChanged(object sender, TextChangedEventArgs e)
{
viewSource.View.Refresh();
}
}
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ItemsControl x:Name="itemsData">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ItemsControl BorderBrush="Black" BorderThickness="1" ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ItemsControl BorderBrush="Black" BorderThickness="1" ItemsSource="{Binding}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=.}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</Window>
namespace WpfApplication1
{
/// <summary>
/// Логика взаимодействия для MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var my = new MyClass();
my.Data = new List<byte[][]>();
my.Data.Add(new byte[][] { new byte[] { 0, 1 }, new byte[] { 2, 3 }, new byte[] { 4, 5 } });
my.Data.Add(new byte[][] { new byte[] { 6, 7 }, new byte[] { 8, 9 }, new byte[] { 10, 11 } });
itemsData.ItemsSource = my.Data;
}
}
public class MyClass
{
public List<byte[][]> Data
{ get; set; }
}
}